通过Websphere LTPA SSO令牌进行预身份验证,初始化Spring上下文的最佳方法是什么?现在我有一个自定义过滤器,为Spring Security上下文提供PreAuthorizedAuthenticationToken。是否有现成的过滤器可以自动执行此操作?当我尝试使用PreAuth类时,我总是遇到GrantedAuthorities的麻烦。
干杯
答案 0 :(得分:1)
最佳选择是通过扩展AbstractPreAuthenticatedProcessingFilter来获得自定义预身份验证过滤器。
您可以从请求中获取令牌并将其以getPreAuthenticatedCredentials()方法返回。
您可以定义自己的AuthenticationUserDetailsService并将其传递给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>