shiro过滤器⼀* = authc把自己写的都拦截了,走了上面的拦截器后还是会被⼀*拦截

2024-12-22 12:10:12
推荐回答(3个)
回答1:

我在整合springboot 的 无状态shiro 的时候发现了这个问题,同样的配置在spring mvc下用xml方式配置是正常的,就是ShiroFilterFactoryBean注入自定义拦截器后,
只要使用了/** = ANYONE会拦截前面所有的拦截器,不管是否通过。
比如这样配置
/test = none
/** = authc
使用shiro内置拦截器照样拦截前面所有的,因为我是无状态,在访问的时候会报错的。
,但是不注入自定义拦截器就是正常的。注入自定义拦截器,感觉整个拦截器链都混乱了,弄了一下午没有弄好这个问题。

回答2:

我也碰到这种情况了,,,发现filters.put("authc", filter_Authc());这种方式注入filter的时候,拦截顺序会失效,,,要改成new xx()这种方式才可以filters.put("authc", new Filter_Authc());

回答3:

上边的成功匹配之后/* = authc 就不会拦截了