SpringSecurity跌坑指南
1,事情原委
这两天开始了毕业设计,但是突然发现自己的java方面的基础比较薄弱,于是决定自己从头到尾的开发一个java项目
要说跌的最惨的坑,莫过于springsecurity,如果你只是想要在项目里面配置springsecurity,思路很简单,找到一个配置好的项目,复制粘贴该部分代码
但是这个项目的复杂之错就在于:用了太多的配置
一个登录功能用到的就有:springsecurity,jwt,redis等三个配置
而最要命的是,springsecurity并不是一个靠谱的家伙,至从我这两天来的辛苦配置来看,我学习了20年的配置,照搬过来,结果出了很多莫名其妙的问题
2,问题解析
第一个问题
当我引入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
配置的时候项目没问题,但是会对所有页面进行权限管理【而且我去配置了允许所有的访问,依旧不行,我首先怀疑是约定大于配置】苦于对springsecurity不是十分了解,我决定先放弃对它的验究,于是我取消了引入上述链接,结果离谱的是,所有引入的包都报错:离大谱了呀家人们
导致必须加上如上配置
后来了解到,因为20版本的idea默认不用maven管理【你不用maven你用什么?xx】,配置如下解决第一个问题
第二个问题
当我配置好所有,访问受到限制【当时没解决第一个问题】:连登录(发送post信息)都要要求登录
结局如上问题后发现链接无法配置,检查如下
1,这个controller文件夹必须和application在同一级目录下面
然后我把controller写在了application里面,又能够访问了,经过检查发现,扫描包写错了
下面这个包是配置mybatisplus必须的,否则就会报错,然后我写为了@compounent(),而这个配置是用来指定controller的包的【关键我写上述配置也不报错,大无语😶】
@MapperScan("com.yang.mapper")
第三个问题
我最终还是暂时取消掉了使用springsecurity,因为:配置确实不少,而且报错了是真难找
而且这个过程中我使用了chatGPT的辅助,但是这玩意儿坑的地方就在于,它的资料库截至2021年,很多springsecurity的更新它并不知道,而且,他给的代码报错并且告诉他他也不知道
这个故事告诉我们,学会工具的使用,并了解工具的局限性非常重要,与其使劲于让gpt帮你完成任务,不如去找最新的资料,学习并自己完善,借助于其帮助学习才是应该有的程序员思维
总结
springsecurty的配置,并不是一个非常简单的操作,需要学习才能配置的足够好