我想知道在預先身份驗證場景中如何/在哪裏管理SecurityContext中的身份驗證。我如何/在哪裏可以在預認證情況下在SecurityContext中管理身份驗證場景
我正在使用spring security 2.x在我的項目中實現預認證方案。現在,它可以工作。
用戶通過預先認證過程登錄後,可以通過相關角色進行身份驗證,並且可以訪問安全性中定義的資源:過濾器。
例如
<security:filter-invocation-definition-source lowercase-comparisons="true" path-type="ant">
<security:intercept-url pattern="/resource/**" access="ROLE_ADMIN" />
在某個控制器中,我想檢查安全內容中的主體。
public abstract class AbstractUserAuthenticationController extends AbstractController
{
protected boolean isAuthenticated(String userName)
{
Object obj = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); // where issue come up
但SecurityContextHolder.getContext()。getAuthentication()總是返回null。
另外,我也不能使用secuiry標籤在JSP來檢查,如果用戶有相關作用
<security:authorize ifNotGranted="ROLE_ADMIN">
no role found
</security:authorize>
下面顯示「的FilterChainProxy」我使用。
<bean id="filterChainProxy" class="org.springframework.security.util.FilterChainProxy">
<property name="filterInvocationDefinitionSource">
<value>
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
PATTERN_TYPE_APACHE_ANT
/*subscri*=httpSessionContextIntegrationFilter,logoutFilter,j2eePreAuthenticatedProcessingFilter,securityContextHolderAwareRequestFilter,subscribeExceptionTranslationFilter,filterInvocationInterceptor
/**=httpSessionContextIntegrationFilter,logoutFilter,j2eePreAuthenticatedProcessingFilter,logoutFilter,rememberMeProcessingFilter,exceptionTranslationFilter,filterSecurityInterceptor
</value>
</property>
</bean>
<bean id="preAuthenticatedAuthenticationProvider" class="org.springframework.security.providers.preauth.PreAuthenticatedAuthenticationProvider">
<property name="preAuthenticatedUserDetailsService" ref="preAuthenticatedUserDetailsService" />
</bean>
<bean id="preAuthenticatedUserDetailsService" class="demo.project.security.auth.RsaAuthenticationUserDetailsService" >
<property name="userService" ref="userService" />
</bean>
<bean id="j2eePreAuthFilter" class="demo.project.security.filter.AutoLoginFilter">
<property name="authenticationManager" ref="authenticationManager" />
<property name="userService" ref="userService" />
</bean>
我想我需要在某處設置Authentication到SecurityContext,但我不知道在哪裏/哪裏。
我缺少什麼?任何人都可以提供一些線索嗎?
謝謝!
伊恩