关于java:Shiro安全框架-会话

38次阅读

共计 1759 个字符,预计需要花费 5 分钟才能阅读完成。

扫描

DefaultAdvisorAutoProxyCreator 是 Spring AOP 内置的一个 APC, 它在容器每个 bean 初始化的后置解决阶段,从容器中找到所有的 Spring Advisor bean, 而后检测这些 Advisor bean 是否须要包裹到容器正在初始化的 bean 上。

DefaultAdvisorAutoProxyCreator 要用的拦截器都来自于容器中匹配的 Spring Advisors, 而不思考其余形式定义的 aspects。

DefaultAdvisorAutoProxyCreator 过滤某个 Spring Advisor 是否符合条件的办法 isEligibleAdvisorBean 笼罩了基类中的缺省实现。它有两种工作模式 :
不应用 Advisor bean 名称前缀匹配形式 : 这种形式下认为每个 Advisor 都符合条件;
应用 Advisor bean 名称前缀匹配形式 : 这种形式下认为仅仅 Advisor bean 名称合乎指定前缀的 Advisor 才符合条件;
以后,合乎以上 isEligibleAdvisorBean 条件的 Advisor 并不是都会利用到该 APC 以后所解决的 bean 上,还会依据 bean 类 / 办法上的注解思考是否包裹一个 Advisor。

 /**
 * 当将 shiro 中的注解 RequiresPermissions 放到管制层办法时须要配置此对象
 *,并设置对管制层办法上的注解无效 (例如 @GetMapping)
 * @return
 */
@Bean
public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator(){DefaultAdvisorAutoProxyCreator daa = new DefaultAdvisorAutoProxyCreator();
daa.setUsePrefix(true);
return daa;
}

会话时长的设置

@Bean
public SessionManager sessionManager(){
DefaultWebSessionManager sessionManager=
new DefaultWebSessionManager();
//session 的超时工夫
//sessionManager.setGlobalSessionTimeout(1000*60*60);//1 个小时
sessionManager.setGlobalSessionTimeout(60*60*1000);//2 分钟
// 删除有效 session sessionManager.setDeleteInvalidSessions(true);
// 当客户端 cookie 被禁用是否要设置 url 重写
sessionManager.setSessionIdUrlRewritingEnabled(false);
return sessionManager;
}
@Bean
public RememberMeManager rememberMeManager(){CookieRememberMeManager rememberMeManager=new CookieRememberMeManager();
SimpleCookie cookie=new SimpleCookie("rememberMe");
cookie.setMaxAge(7*24*60\*60);// 设置 cookie 的生命周期
rememberMeManager.setCookie(cookie);
return rememberMeManager;
}

缓存

\*\*

* 配置受权缓存管理器,shiro 框架内置缓存对象,底层实现 map
* @return
\*/
@Bean
public CacheManager shiroCacheManager(){return new MemoryConstrainedCacheManager();
}

加密

@Override
public CredentialsMatcher getCredentialsMatcher() {HashedCredentialsMatcher md5 = new HashedCredentialsMatcher("MD5");
md5.setHashIterations(1);
return md5;
}

正文完
 0