使用LTPA令牌进行预身份验证

时间:2011-10-21 15:45:54

标签: spring spring-security

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

干杯

1 个答案:

答案 0 :(得分: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>

如果您已授予auth,而不是以默认前缀ROLE开头,则可以定义自定义前缀

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