欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

多模块项目引入SpringSecurity后一直报404的解决方案

程序员文章站 2022-03-11 12:39:16
多模块项目引入springsecurity后报404如图所示,在多模块应用中,1引用2后所有访问路径报错404在确保security配置正确的情况下,检查一下1的启动类(主动引入security的那个...

多模块项目引入springsecurity后报404

如图所示,在多模块应用中,1引用2后所有访问路径报错404

多模块项目引入SpringSecurity后一直报404的解决方案

在确保security配置正确的情况下,检查一下1的启动类(主动引入security的那个模块)

这种写法是错误的,虽然扫描到了security模块下的组件,但是会覆盖原本自己模块下的组件。

多模块项目引入SpringSecurity后一直报404的解决方案

正确的做法如下:

多模块项目引入SpringSecurity后一直报404的解决方案

springsecurity404需要注意的地方

在使用@requestmapping的时候路径的值如果写为("auth"),虽然用的时候前面加不加"/"没有区别,但是在配置了springsecurity的http.authorizerequests().antmatchers()时就必须要注意了!

1-->

@requestmapping("auth")与.antmatchers("auth")请求路径 http://localhost:8080/auth 与 http://localhost:8080/auth/ 都映射不到你指定的antmatchers("auth")上,而是给了.anyrequest().authenticated()处理.

2-->

@requestmapping("auth")与.antmatchers("/auth")请求路径 http://localhost:8080/auth 是正常对应的 http://localhost:8080/auth/ 交给了.anyrequest().authenticated()处理.

3-->

@requestmapping("/auth")与.antmatchers("auth")同1

4-->

@requestmapping("/auth")与.antmatchers("/auth")同2

结论

使用.antmatchers("/auth")和@requestmapping("/auth"),为什么呢? 这就是我写这篇文章的原因.

2之前是能用的但是偏偏今天就404了,我就对比都试了下.试完4后2能用了,我还是不太相信2所以推荐大家使用4.

可能你们的使用2丝毫没有问题。以上为个人经验,希望能给大家一个参考,也希望大家多多支持。