扫描
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;
}
发表回复