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

dav*_*avo 6 spring spring-security

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

干杯

cod*_*der 2

最好的选择是通过扩展 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>
Run Code Online (Sandbox Code Playgroud)

如果您已授予身份验证,但不以默认前缀 ROLE 开头,您可以定义自定义前缀

<bean id="myPermissionRoleVoter" class="org.springframework.security.access.vote.RoleVoter">
        <property name="rolePrefix" value="myprefix"/>
    </bean>
Run Code Online (Sandbox Code Playgroud)