2011-10-21 52 views
6

通过Websphere LTPA SSO令牌进行预认证时,初始化Spring上下文的最佳方式是什么?现在我有一个自定义过滤器,它为Spring Security上下文提供了一个PreAuthorizedAuthenticationToken。是否有一个现有的过滤器会自动执行此操作?当我尝试使用PreAuth类时,我一直遇到GrantedAuthorities的麻烦。使用LTPA令牌进行预认证

干杯

回答

1

最好的选择是通过扩展AbstractPreAuthenticatedProcessingFilter有一个自定义的预认证的过滤器。

您可以从请求中获取令牌并在getPreAuthenticatedCredentials()方法中将其返回。

您可以定义自己的AuthenticationUserDetailsS​​ervice来做,并把它传递给PreAuthenticatedAuthenticationProvider,在这里你可以获取授予的权限,并返回他们在UserDetails对象

<bean id="preAuthAuthenticationProvider" 
      class="org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationProvider"> 
     <property name="preAuthenticatedUserDetailsService"> 
      <bean id="myUserDetailsService" 
        class="MyUserDetailsService"> 
      </bean> 
     </property> 
    </bean> 

如果您已授予身份验证,不能与默认前缀ROLE开始,你可以定义您的自定义前缀

<bean id="myPermissionRoleVoter" class="org.springframework.security.access.vote.RoleVoter"> 
     <property name="rolePrefix" value="myprefix"/> 
    </bean>