3

我们正在使用 Grails 框架构建一个 Restful 服务,并使用 Spring Security 插件为其提供安全性。当您想使用自定义授权标头进行身份验证时,我想与大家一起检查最佳方法。可以在此处阅读有关此方法的更多信息 自定义 HTTP 授权标头

在我的例子中,客户端 ID 和密码存储在 Ldap 中,并且标头带有 SHA1 加密。使用 Spring Security 实现这一点的最佳方法是什么?

我也在 Grails 邮件列表中问过同样的问题。

任何见解都会有所帮助。谢谢。

~阿比

4

2 回答 2

10

您必须实现自己的过滤器、身份验证提供程序和身份验证令牌(将数据传递给您的提供程序)。

看:

于 2013-03-18T06:40:50.223 回答
0

项目清单

如果您使用的是基本授权标头,则以下配置适用于您在 context-security.xml 文件中。

< http  auto-config="true" use-expressions="true" pattern="/project/api/**">
        < intercept-url pattern="/**" access="isFullyAuthenticated()" requires-channel="${security.requires.channel}" method="POST"/>
        < custom-filter ref="basicAuthenticationFilter" position="PRE_AUTH_FILTER"/>
    < /http>    
    < beans:bean id="basicAuthenticationFilter" class="org.springframework.security.web.authentication.www.BasicAuthenticationFilter">
        < beans:property name="authenticationManager" ref="authenticationManager" />
        < beans:property name="authenticationEntryPoint" ref="authenticationEntryPoint" />      
    < /beans:bean>

我对其余服务使用了相同的方法但是您需要注意,无论您使用什么方案来编码用户名和密码,都应该在过滤器中使用相同的方案来解码“授权”标头信息。如果您使用一些自定义方案来编码“授权”标头,那么您需要扩展“ BasicAuthenticationFilter ”并提供“授权”标头的适当解码

于 2016-05-31T11:26:58.007 回答