2017-08-07 7 views
-1

ログアウトボタンをクリックした後にユーザーロールを取得します。 役割は管理者であれば、私は役割がユーザーであれば、私は/ログアウトに事前に春のセキュリティとJavaでログアウトした後にユーザーロールを取得する方法は?

おかげ

を/index.jsp返す必要が/ログアウト
に/login.jsp返却する必要があり

私controller.java:

@RequestMapping(value="/logout",method=RequestMethod.GET) 
     public String logout(HttpServletRequest request,ModelMap model) 
     { 
    model.addAttribute("userForms",userService.getActiveUserList()); 
     model.addAttribute("Success",true); 
     return "/login"; 
     } 

UserService.java

public List<UserForm> getActiveUserList() 
{ 
     List<UserForm> userForms = new ArrayList<UserForm>(); 

     List<User> users = new ArrayList<User>(); 

     users = userDAO.getActiveList(); 

     for (User user : users) { 

      String crmDomainLink=crmProperties.getProperty("CRMAppDomain"); 
      UserForm userForm = new UserForm(
        user.getUserId(),user.getName(), user.getCode(), 
CRMConstants.convertUSAFormatWithTime(user.getCreatedDateTime()), 
user.getIsEnabled(), null); 
      userForms.add(userForm); 
     } 

     return userForms; 
    } 

あなたは次にあなたが次のメソッドを呼び出すことにより、ログインしているユーザーの役割を取得することができます

@RequestMapping(value="/logout", method = RequestMethod.GET) 
public String logout(ModelMap model, Authentication authentication) { 
} 

に従うことによって、コントローラでAuthenticationオブジェクトを取得することができます

public List<User> getActiveList() { 
return this.sessionFactory.getCurrentSession().createCriteria(User.class).add(Restrictions.and(Restrictions.eq("isEnabled", 1),Restrictions.ne("userId", 1))).list(); 
    } 

答えて

-1

MyDAO.java

authentication.getAuthorities(); 
0

カスタムLogoutSuccessHandlerを実装する必要があります。ような何か:XML場合

@Component 
public class CustomLogoutSuccessHandler implements LogoutSuccessHandler { 

    public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { 
     if (AuthorityUtils.authorityListToSet(authentication.getAuthorities()).contains("ROLE_ADMIN")) { 
      response.sendRedirect("/login.jsp"); 
     } else { 
      response.sendRedirect("/index.jsp"); 
     } 
    } 
} 

は、セキュリティ設定に追加します:

<logout success-handler-ref="customLogoutSuccessHandler" /> 
関連する問題