我在配置文件 application.yml 中的配置和 shiroFilter 中动态拦截器注入的代码如下图所示,启动后访问 /login/auth
登录请求接口时,依然是被 Shiro 拦截的;
其实问题就出在 shiroFilter 的动态拦截注入的代码中;因为 shiro 的拦截是从上往下依次匹配的,所以在配置中,需要将
/**
放在最后,然后依次设置需要放行或拦截的资源。所以既然配置文件中的资源已经是正确的配置了,为啥启动后访问还是被拦截了呢?这是因为 HashMap 是无序的,在启动时,配置文件被加载了,存储到了 filterRuleMap
中,但是它已经变成无序的了;解决方法就是让 filterRuleMap
变的有序,修改后的代码如下:
好了,重新启动你的服务,然后访问 /login/auth
接口,现在已经按照你的设定完成了操作;
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于