自定义SessionManager时,sessionKey 什么时候会强转成 WebSessionKey 实例?

来源:5-2 Shiro会话管理2

qq_南方

2018-09-07 22:51

if (sessionKey instanceof WebSessionKey){ // DefaultSessionKey
    request = ((WebSessionKey) sessionKey).getServletRequest();
    System.out.println("instanceof");
}
// 我试过,每次都没有进来,不知道什么原因。
// WebSessionKey 继承 DefaultSessionKey,当我强转时,就会抛出异常。


写回答 关注

1回答

  • qq_南方
    2018-09-08 21:52:05
    @Bean
    public DefaultWebSecurityManager securityManager() { // DefaultSecurityManager
        DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
        securityManager.setRealm(userRealm2());
        securityManager.setCacheManager(ehCacheManager());
        securityManager.setRememberMeManager(rememberMeManager());
        securityManager.setSessionManager(sessionManager()); // 自定义Session管理
        SecurityUtils.setSecurityManager(securityManager); // 初始化 SecurityManager
        return securityManager;
    }
    /* 我再最开始时,使用DefaultSecurityManager进行初始化,DefaultWebSecurityManager是其子类,
     * 我想是这个原因,我也验证了。
     */


Shiro安全框架入门

从零入门Shiro安全框架

48036 学习 · 332 问题

查看课程

相似问题