当前位置:   article > 正文

SpringBoot中使用SpringSecurity+JWT_spring boot + spring security + jwt

spring boot + spring security + jwt

一、JWT

  1. 前提知识
    1.1. 对称加密,非对称加密,加盐。
    1.2. 报文鉴别,数字签名,身份认证等数据安全。
    1.3. jwt介绍
  2. JWT的作用
    2.1. 就是把签证解密之后与头部和载荷对应,从而确认身份。

二、SpringSecurity

  1. 前提知识
    1.1. 了解是什么,知道自定义登陆等

三、实践

  1. 添加依赖
        <!--        springSecurity依赖:安全框架-->
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-security</artifactId>
                </dependency>

        <!--        ___________________________________________________________________________      -->
        <!--JWT(Json Web Token)登录支持-->
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt</artifactId>
            <version>0.9.0</version>
        </dependency>
        <!--        ___________________________________________________________________________      -->
        <!--Hutool Java工具包 -->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>4.5.7</version>
        </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  1. 添加类
    2.1. SpringSecurity配置类SpringSecurityConfig

     作用:
     自定义登陆
     密码加密
     配置过滤URL等配置
    
    • 1
    • 2
    • 3
    • 4

    2.2. JWT工具类JwtTokenUtil

    作用
    生成token
    从token获取用户名等
    
    • 1
    • 2
    • 3

    2.3. Jwt过滤类JwtAuthenticationTokenFilter

    作用
    从被拦截请求的token获取用户名登陆SpringSecurity
    
    • 1
    • 2

    2.4. UserDetails类AdminUserDetails

    作用
    保存用户的信息,比如权限,用户名等
    为SpringSecurity提供用户信息。重要
    
    • 1
    • 2
    • 3

    2.5. token错误返回前端信息类RestAuthenticationEntryPoint

    作用
    定义出现未登录,token过期等问题返回信息
    
    • 1
    • 2

    2.6. token错误返回前端信息类RestfulAccessDeniedHandler

    作用
    定义出现没有权限时返回信息
    
    • 1
    • 2

    2.7. 登陆请求控制器类LoginController

    2.8. 登陆请求服务类LoginService

    2.9. 用户实体类PersonPO

    2.10. 测试权限类indexController

    解释
    添加UserDetails类的获取权限方法getAuthorities()中权限
    之后在需要权限的地方使用注解    @PreAuthorize("hasAuthority('ROLE_ADMIN')")
    
    • 1
    • 2
    • 3
  2. 数据库
    看sql文件

四、代码

代码下载

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/885777
推荐阅读
相关标签
  

闽ICP备14008679号