我正在尝试使用spring 2.0安全性配置Request-Header身份验证,我是一个完整的新手,所以请耐心等待。从doc开始,他们使用siteminder提供示例配置文件。
在我的场景中,请求头中将有一个用户名和用户组,分别使用CC_USER和CC_USER_GROUP的键。所以我将文件调整为如下(见下文)。
我知道在外部系统中,用户已经使用某种类型的单点登录进行了身份验证,当控件到达我的应用程序时,我们只需要检查CC_USER和CC_USER_GROUP的请求标头。
问题1:下面的示例使用“userDetailsService”。这是我需要实现的吗?这是我将检查CC_USER和CC_USER_GROUP的请求标题吗?
问题2:是否有一个完整的示例我可以下载使用请求标头身份验证的地方?我做了很多谷歌搜索,但并没有真正找到很多帮助。
问题3:我想对一些虚拟用户进行测试,就像在文档中一样。如何将以下内容合并到我的请求标头配置中?
<authentication-provider>
<user-service>
<user name="jimi" password="jimispassword" authorities="ROLE_USER, ROLE_ADMIN" />
<user name="bob" password="bobspassword" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
我修改的示例配置文件(基于docs中的siteminder文件):
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:security="http://www.springframework.org/schema/security"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-2.0.4.xsd">
<bean id="ssoFilter"
class="org.springframework.security.ui.preauth.header.RequestHeaderPreAuthenticatedProcessingFilter">
<security:custom-filter position="PRE_AUTH_FILTER" />
<property name="principalRequestHeader" value="CC_USER" />
<property name="authenticationManager" ref="authenticationManager" />
</bean>
<bean id="preauthAuthProvider"
class="org.springframework.security.providers.preauth.PreAuthenticatedAuthenticationProvider">
<security:custom-authentication-provider />
<property name="preAuthenticatedUserDetailsService">
<bean id="userDetailsServiceWrapper"
class="org.springframework.security.userdetails.UserDetailsByNameServiceWrapper">
<property name="userDetailsService" ref="userDetailsService" />
</bean>
</property>
</bean>
<security:authentication-manager
alias="authenticationManager" />
</beans>
答案 0 :(得分:1)
RequestHeaderPreAuthenticatedProcessingFilter
RequestHeaderAuthenticationFilter
吗?我认为documentation非常清楚。