前言
因为最近有个项目需要用到Springboot + Spring Security的登录跟权限认证,因为之前都没接触过,所以得从0开始,也是不断的查询摸索,虽然还么理清这些原理,但是好在实现了功能,先解决问题,然后再深究原理,所以打算记录下来实现这块遇到的一些问题,给自己记录也给有需要的朋友
提示:以下是本篇文章正文内容,下面案例可供参考
一、解决办法
那肯定是先百度搜索一下,于是搜到一篇大佬的文章确实写的不错膜拜传送门,这篇可以让你先搭上这些东西,然后有个大概的概念,我只是借鉴了一些,让你先知道核心配置是什么,怎么去自定义查询用户跟权限的方法(因为我之前最开始是要最springcloudgateway+Spring Security来实现鉴权的,其实也是实现了,但是后面需要用swagger,但是依赖springmvc,而网关是reactive,就集成这里有点问题就先暂时搁浅了,后面又时间也把这个记录下。)
二、使用步骤
1.先把项目跑起来断点打起来走下流程试试
可能有些朋友刚开始还不知道怎么创建数据库,只是想单独的试下Spring Security的登录功能。
那么在配置UserDetailsServiceImpl中先不查询数据,把用户密码写死到配置里面。在配置文件.properties中加入配置
#security 配置
spring.security.user.name=admin
spring.security.user.password=123456
把UserDetailsServiceImpl中loadUserByUsername连接数据查询的方法注释掉,启动项目
输入配置的用户密码就能登录,成功就能看到我们自己写的成功后返回,失败就是失败后返回。
2.自定义登录
因为在我们实际的系统使用中,一般是不会用Spring Security自带的登陆界面,这时候需要我们自定义,在核心配置类WebSecurityConfig中的configure方法把.loginPage("/login.html")
代码如下(示例):
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.cors(