2013-06-24 32 views
0

我已經實現了SecureSocial模塊並通過它提供登錄。對於不同的用戶,我已經映射了不同的角色,並在主控制器應用程序中檢查登錄後的重定向。playframework PLAY_SESSION在註銷之前記得來自頁面的URL

public class Application extends Controller { 

    /** 
    * This action only gets called if the user is logged in. 
    * 
    * @return 
    */ 
    @SecureSocial.SecuredAction 
    public static Result index() { 
     User currentUser = User.findByEmail(SecureSocial.currentUser().id().id()); 
     List<UserRole> userRoles = currentUser.getUserRoles(); 

     for(UserRole ur : userRoles) { 
      if(ur.getRole().equals(RoleEnum.ROLE_EMPLOYEE)) { 
       return ok(..);       
     } 
     return ok(home.render()); 
    } 

根據這一些頁面拒絕角色ROLE_EMPLOYEE。但是當註銷時,最後一個url被存儲在PLAY_SESSION cookie中,並且在與之前的角色相關的用戶登錄後,應用程序會自動重定向到錯誤的頁面。任何想法如何處理?

回答

0

安全社交模塊會在重定向頁面/登錄或/註銷時記住會話Cookie。所以這種情況下的解決方案是製作新的頁面,註銷後將重定向。 cookie將被重新設置,並且在這個新頁面中,用戶可以通過按鈕/鏈接/ smthg重定向回任何已保存的cookie數據進行登錄。在下一個安全社交模塊版本中可以獲得一些新的修補程序。