廢話少說直接上問題和解決方法棍掐。
問題:Shiro從1.4.0版本換到1.9.0版本后出現(xiàn)跨域問題藏雏。PS:原來有配置跨域拷况,且在1.4.0版本沒問題。
后面研究發(fā)現(xiàn)不是跨域配置出了問題掘殴,而是Shiro鑒權(quán)的問題赚瘦。
解決方法:
@Bean
public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager) {
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
shiroFilterFactoryBean.setSecurityManager(securityManager);
Map<String, String> filterChainDefinitionMap = new LinkedHashMap<String, String>();
// 1.8.0及以上的版本。
filterChainDefinitionMap.put("/**", "anon");
// 這里需要注意的是這個配置會導(dǎo)致所有的請求路徑都免權(quán)限(不登錄即可訪問)
// 因此需要給每個方法設(shè)置權(quán)限使用注解@RequiresAuthentication或者@RequiresPermissions
// shiro1.4.0版本使用
// filterChainDefinitionMap.put("/**", "authc");
return shiroFilterFactoryBean;
}
Shiro官方例子:
shiro官方例子.png
參考地址:Shiro1.9.0版本
參考地址:Shiro1.9.0版本集成spring