2014-02-11 56 views
1

我正在幫助維護使用Apache Shiro的應用程序。Apache Shiro - 註銷時記得我cookie嗎?

我們希望我們的用戶能夠註銷,但保持自己的「記住我」的cookie,但顯然這是不被支持四郎(滾動到頁面底部):

https://shiro.apache.org/java-authentication-guide.html

當您在Shiro註銷時,它將關閉用戶會話, 會從主題實例中刪除任何關聯的身份。如果您在網絡環境中使用了RememberMe,則,則默認情況下,.logout()將由 刪除,同時從瀏覽器中刪除RememberMe cookie。

實現此目標的最佳方法是什麼?

回答

0

原來可以這樣做,通過使用自定義的安全管理器:

public class CustomSecurityManager extends DefaultWebSecurityManager { 
    @Override 
    protected void beforeLogout(Subject subject) 
    { 
     super.removeRequestIdentity(subject); 
    }  
} 
+0

有點晚了,但我正在與Shiro的rememberMe打架吧:可以通過擴展'CookieRememberMeManager'並覆蓋'public void onLogout(Subject)'方法(來自'AbstRememberMeManager')來自定義RememberMeManager嗎? – Al1

0

,你可以:

  1. 複製RememberMe餅乾。
  2. 執行他們的註銷。
  3. 然後將其複製回原處。

從未使用過Apache Shiro,所以我不確定它是如何工作的,或者它是否能完成你想要完成的任務。

+0

感謝您的反饋!我們考慮過這樣做,但是Shiro很好地加密了cookie中的用戶名......並且似乎這個功能應該是可選的,而不是必需的。 –