关于shiro整合springboot遇到的问题
1、在ShiroConfig需要添加缓存,否则后果会造成多次登录认证,随后在安全管理器上添加缓存配置
//因为shiro不知道账户的授权信息,没有缓存需要在内存缓存管理器上加上一行代码添加缓存
@Bean
public EhCacheManager getCache(){
return new EhCacheManager();
}
@Bean("securityManager")
public DefaultWebSecurityManager securityManager(CustomerRealm realm) {
DefaultWebSecurityManager defaultWebSecurityManager = new DefaultWebSecurityManager();
defaultWebSecurityManager.setCacheManager(getCache());
return defaultWebSecurityManager;
}
2、当遇到权限不足时就会抛出AuthorizationException异常,解决方法配置一个全局异常返回前端
@ResponseBody
@ExceptionHandler(UnauthorizedException.class)
public Result handleShiroException(Exception ex) {
return ResultUtil.error(102,"无权限");
}
@ResponseBody
@ExceptionHandler(AuthorizationException.class)
public Result AuthorizationException(Exception ex) {
return ResultUtil.error(102,"登录认证失败");
}