6
通过Websphere LTPA SSO令牌进行预认证时,初始化Spring上下文的最佳方式是什么?现在我有一个自定义过滤器,它为Spring Security上下文提供了一个PreAuthorizedAuthenticationToken。是否有一个现有的过滤器会自动执行此操作?当我尝试使用PreAuth类时,我一直遇到GrantedAuthorities的麻烦。使用LTPA令牌进行预认证
干杯
通过Websphere LTPA SSO令牌进行预认证时,初始化Spring上下文的最佳方式是什么?现在我有一个自定义过滤器,它为Spring Security上下文提供了一个PreAuthorizedAuthenticationToken。是否有一个现有的过滤器会自动执行此操作?当我尝试使用PreAuth类时,我一直遇到GrantedAuthorities的麻烦。使用LTPA令牌进行预认证
干杯
最好的选择是通过扩展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>
如果您已授予身份验证,不能与默认前缀ROLE开始,你可以定义您的自定义前缀
<bean id="myPermissionRoleVoter" class="org.springframework.security.access.vote.RoleVoter">
<property name="rolePrefix" value="myprefix"/>
</bean>