废话少说直接上问题和解决方法。
问题:Shiro从1.4.0版本换到1.9.0版本后出现跨域问题。PS:原来有配置跨域,且在1.4.0版本没问题。
后面研究发现不是跨域配置出了问题,而是Shiro鉴权的问题。
解决方法:
@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");
// 这里需要注意的是这个配置会导致所有的请求路径都免权限(不登录即可访问)
// 因此需要给每个方法设置权限使用注解@RequiresAuthentication或者@RequiresPermissions
// shiro1.4.0版本使用
// filterChainDefinitionMap.put("/**", "authc");
return shiroFilterFactoryBean;
}
Shiro官方例子:
![](https://img.haomeiwen.com/i4226687/f5d68b5c9b13352a.png)
参考地址:Shiro1.9.0版本
参考地址:Shiro1.9.0版本集成spring
网友评论