shiro 拦截器配置anno部分不生效
ShiroConfig 配置如下:
@Bean
public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager) {
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
shiroFilterFactoryBean.setSecurityManager(securityManager);
Map<String, String> filterMap = new LinkedHashMap<>();
//dologin
filterMap.put("/doLogin", "anon");
// miniprogram
filterMap.put("/microprogram/**", "anon");
// 登出
filterMap.put("/logout", "logout");
// swagger
filterMap.put("/swagger**/**", "anon");
filterMap.put("/webjars/**", "anon");
filterMap.put("/v2/**", "anon");
// druid
filterMap.put("/druid**/**", "anon");
// 登录css、js
filterMap.put("/static/js/**", "anon");
// 登录css、js
filterMap.put("/static/css/**", "anon");
// 登录css、js
//filterMap.put("/static/pages/**", "anon");
// 前端插件
filterMap.put("/plugins/**", "anon");
// 前端public
filterMap.put("/public/**", "anon");
// 对所有用户认证
//filterMap.put("/**", "authc");
// 登录
shiroFilterFactoryBean.setLoginUrl("/login");
// 首页
shiroFilterFactoryBean.setSuccessUrl("/index");
// 错误页面,认证不通过跳转
shiroFilterFactoryBean.setUnauthorizedUrl("/error");
shiroFilterFactoryBean.setFilterChainDefinitionMap(filterMap);
return shiroFilterFactoryBean;
}
//Controller 类如下
@Api(tags = "小程序模拟返回Controller")
@RestController
@RequestMapping("/microprogram")
public class MicroprogramController {
@GetMapping("/getSwiperList")
public ResponseVO getSwiperList(){
List rows = new ArrayList();
rows.add("https://111.png");
rows.add("https://222.png");
rows.add("https://333.png");
return new ResponseVO(ConstantUtil.SUCCESS,"操作成功",10,rows);
}
}
实际效果就是:
- 其他的doLogin、swagger** 都能正常放行,但是/microprogram/** 不生效
- 如果把MicroprogramController 类中的getSwiperList()方法名改为doLogin()又会生效