2011-10-21 79 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>