2011-09-19 34 views
8

Tôi là người mới đến Spring Security 3. Tôi đang sử dụng vai trò để người dùng đăng nhập.Ví dụ AuthenticationSuccessHandler cho Spring Security 3

Tôi muốn chuyển hướng người dùng đến một trang khác dựa trên vai trò của người dùng đó, tôi hiểu là tôi sẽ phải triển khai AuthenticationSuccessHandler cho tương tự, nhưng một số ví dụ theo hướng đó sẽ hữu ích.

Cảm ơn trước, Vivek

Trả lời

23

Bạn có thể làm một cái gì đó như thế này:

public class Test implements AuthenticationSuccessHandler { 
    public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) { 
     Set<String> roles = AuthorityUtils.authorityListToSet(authentication.getAuthorities()); 
     if (roles.contains("ROLE_USER") { 
      response.sendRedirect("/userpage"); 
     } 
    } 
} 

Trong XML config thêm này:

<bean id="authenticationFilter" class="YOUR_AUTH_FILTER_HERE"> 
    <!-- There might be more properties here, depending on your auth filter!! --> 
    <property name="authenticationSuccessHandler" ref="successHandler" /> 
</bean> 

<bean id="successHandler" class="Test"/> 
+0

ok, và vào mùa xuân-an ninh. xml, làm cách nào tôi có thể bao gồm trình xử lý tùy chỉnh này (Kiểm tra) – Vivek

+0

Tôi đã cập nhật câu trả lời của mình cho phù hợp. – nfechner

+0

Cảm ơn rất nhiều sự giúp đỡ của bạn. Nó hoạt động như một nét duyên dáng :) – Vivek

Các vấn đề liên quan