0
我想配置請求頭認證使用春天2.0安全性,我是一個完整的新手在它,所以請忍受我。從doc,他們給出了一個使用siteminder的示例配置文件。春天2.0安全配置
在我的場景中,請求標頭中將有一個用戶名和用戶組,分別使用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>
我修改樣本配置文件(基於文檔的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>
@真空 - 感謝您的回答
_RequestHeaderAuthenticationFilter_只是簡單地從頭中提取用戶名,所以如果你還需要建立一個USER_GROUP,你需要創建你自己的RequestHeaderAuthenticationFilter,並直接在過濾器方法中執行此操作。 也許這將有助於:http://teja.tejakantamneni.com/2008/08/spring-security-using-custom.html – vacuum 2012-04-08 22:05:16