1.Filter配置安全管理器
@Bean("shiroFilter")
public ShiroFilterFactoryBean shiroFilter(SecurityManager securityManager){
//.定义factoryBean
ShiroFilterFactoryBean factoryBean = new ShiroFilterFactoryBean();
//.设置安全管理器
factoryBean.setSecurityManager(securityManager);
//.设置默认登陆的url
factoryBean.setLoginUrl("/view1/login");
//.设置成功后要跳转的链接
factoryBean.setSuccessUrl("/view1/findAll");
//.设置未授权页面
factoryBean.setUnauthorizedUrl("/login/ss");
//.返回过滤器
return factoryBean;
}
2.SecurityUtils配置安全管理器
SecurityUtils.setSecurityManager(securityManager);
提问: 这两种方式有什么区别?
感觉你的理解有点怪,两个类setSecurityManager并不是说SecurityManager权限管理是由这两个类set来的,set只是要告知使用者shiro所使用的权限管理是哪一个。就像我自己的代码
@Bean(name = "securityManager")
public DefaultWebSecurityManager securityManager() {
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
securityManager.setRealm(shiroRealm());
securityManager.setCacheManager(ehCacheManager());
return securityManager;
}
SecurityManager 是从这里定义而来
应该是等价的吧,就像连接数据库一样.底层都是调用相应的工厂类.