介绍

  • 构建一些简单的登录业务时,每次都要去配置jwt很烦,于是构建了此模块。
  • 满足了以下功能
    • jwt的常用工具
    • 自定义密钥(预设了默认值)
    • 自定义过期时长(预设了默认值)
    • 可设置放行接口
    • 可设置拦截接口(默认拦截所有)
    • 配有单独的 @ApiMapping 注解,可通过此接口单独进行接口的放行与拦截

      引入依赖

      1. <dependency>
      2. <groupId>cn.jdevelops</groupId>
      3. <artifactId>webs-jwt</artifactId>
      4. <version>2.0.5</version>
      5. </dependency>

      使用

      引入依赖就可以使用了,默认(除一些常规放行)拦截全部

常规放行地址

  1. excludePathPatterns.add("/swagger-resources/**");
  2. excludePathPatterns.add("/webjars/**");
  3. excludePathPatterns.add("/v2/api-docs/**");
  4. excludePathPatterns.add("/v3/api-docs/**");
  5. excludePathPatterns.add("/swagger**/**");
  6. excludePathPatterns.add("/swagger-ui.html/**");
  7. excludePathPatterns.add("/doc.html/**");
  8. excludePathPatterns.add("/user/login/**");

配置说明

jwt主要配置

  1. jdevelops:
  2. jwt:
  3. ## 过期时间为一天 (24*60*60*1000) 单位 毫秒 (有默认 一天)
  4. expire-time: 100000
  5. ## 自定义token私钥 (有默认)
  6. token-secret: adsaweadadcxa123
  7. web:
  8. interceptor:
  9. # 默认拦截全部可不写
  10. # add-path-patterns: /**
  11. # 放行接口或者资源地址
  12. exclude-path-patterns: /letGo

放行接口多个写法(yml)

  • 方式一

    1. jdevelops:
    2. jwt:
    3. web:
    4. interceptor:
    5. exclude-path-patterns: [/letGo,/letGo2]
  • 方式二

    1. jdevelops:
    2. jwt:
    3. web:
    4. interceptor:
    5. exclude-path-patterns:
    6. - /letGo
    7. - /letGo2

接口示例

  • 上面配置好之后直接可以进行接口的测试
  • 接口测试示例 ```java package cn.tannn.jwt.controller;

import cn.jdevelops.jwtweb.annotation.ApiMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;

/**

  • @author tn
  • @version 1
  • @date 2021-12-12 14:48 */ @RestController public class JwtController {

    @GetMapping(“stop”) public String stop(){

    1. return "拦截我";

    }

  1. @GetMapping("letGo")
  2. public String letGo(){
  3. return "通过配置放行我";
  4. }
  5. @ApiMapping(value = "/api/letGo",checkToken = false)
  6. public String apiLetGo(){
  7. return "利用注解@ApiMapping放行";
  8. }
  9. @GetMapping("/user/login")
  10. public String defaultLetGo(){
  11. return "默认放行</user/login>";
  12. }

}

  1. <a name="DiK8h"></a>
  2. # 其他功能
  3. <a name="RO68l"></a>
  4. ## 自定义返回错误认证格式
  5. - 默认
  6. ```json
  7. {
  8. "code": 10003,
  9. "message": "无效的token",
  10. "success": false,
  11. "traceId": "9720264328446016",
  12. "ts": 1639295463029
  13. }

示例项目地址

https://github.com/en-o/Jdevelops-Example/tree/main/Jwt