spring boot组装spring security日记

Spring Security 前后端分离配置

  1. 创建springboot 项目并添加好Spring Security依赖
    在这里插入图片描述

  2. 因为默认Security在启动项目时会自动生成随机密码不太方便登录,所以需要配置 Security 账号密码。

    1. 每次项目启动时候 Security会自动生成随机密码 如下图:
      在这里插入图片描述

    2. 配置Security登录账号及密码

      • 使用配置文件配置

        • 在application.properties配置文件中 添加如下配置在这里插入图片描述

        • 没有application.properties 可以在src\main\resources 新建
          在这里插入图片描述

      • 使用配置类配置

        • 创建SecurityConfig 类
          在这里插入图片描述

        • 增加配置类注解 继承Security框架WebSecurityConfigurerAdapter
          在这里插入图片描述

        • 设置加密方式
          在这里插入图片描述

        • 设置加密方式后 我们需要一个密码加密后的密文来设置密码,所以需要打印一个密文
          在这里插入图片描述

        • 增加用户密码配置
          在这里插入图片描述

      • 读取数据库等其他数据源配置

        • 本文是使用mysql数据库作为数据源,账号及密码存到数据库中

        • 配置数据库依赖

          • 增加数据库,连接池,mysql驱动,mybatis-plus 依赖
            在这里插入图片描述

          • 添加完依赖报错了 不知道原因 百度一下加个依赖好了
            在这里插入图片描述
            在这里插入图片描述

          • 增加相关配置项

            • 配置文件增加内容
              在这里插入图片描述

            • 增加配置类

              • 增加MybatisPlusConfig类
                在这里插入图片描述
            • 增加自动完成配置类
              在这里插入图片描述
            • 自行测试数据库连接是否正常 是否能 正常查到数据
          • 实现UserDetailsService接口

            • 定义UserDetailsService接口
              在这里插入图片描述

            • 定义UserDetailsService接口实现类
              在这里插入图片描述

            • 定义AdminDetails 实现UserDetails 接口
              在这里插入图片描述

            • 完善登录服务逻辑
              在这里插入图片描述

            • 登录服务中分成两个部分:

              1. 使用注入的普通数据库对象查询账号信息
              2. 把查询到的信息放进自定义的UserDetails实现类里面 (此处前后琢磨4个小时,终于琢磨明白
    3. 设置 Security登录的字段名
      在这里插入图片描述

  3. 配置完Security登录账号及密码后 框架就不会在生成随机密码
    在这里插入图片描述

  4. 解决完Security账号问题,剩下的就是授权和鉴权

    1. 授权全局权限

      1. 配置权限白名单,静态资源不检查权限
        在这里插入图片描述

      2. 设置验证权限,所有请求都验证权限,登录页和csrf不校验权限(多个配置用 and 隔开)
        在这里插入图片描述

      3. 设置登录成功及失败回调
        在这里插入图片描述

      4. 返回key:value json字符串

        • 引入json依赖
          在这里插入图片描述

        • 添加json配置
          在这里插入图片描述

        • 将HashMap转成json返回
          在这里插入图片描述

        • 配置成功 所有接口返回json数据
          在这里插入图片描述

    2. 授权请求权限

      1. 使用antMatchers函数设置请求权限
        在这里插入图片描述

      2. 在``SecurityConfig`文件中配置角色继承关系
        在这里插入图片描述

总结

本教程最后实现从数据库查询数据后 由Security 判断密码是否正确 登录成功后生成token 仓库地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独步三界

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值