当前位置:   article > 正文

java(jjwt,swagger)_jjwt 0.12.5

jjwt 0.12.5

1、JWT使用

主要用于身份认证和信息传递
maven坐标:

<dependency>
    <groupId>io.jsonwebtoken</groupId>
    <artifactId>jjwt-api</artifactId>
    <version>0.12.5</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

创建解析jwt:


public class jwtDemo {
    public static void main(String[] args) {
        Map map = new HashMap();
        map.put("name","xiaoming");
        map.put("age","18");
        Map head = new HashMap();
        head.put("type","jwt");
        String jwt = Jwts.builder()
                .signWith(SignatureAlgorithm.HS256,"admin")//指定签名算法
                .setClaims(map)  //设置自定义数据
                .setExpiration(new Date(System.currentTimeMillis() + 3600000)) //设置令牌有效时间一小时
                //描述信息,非必要, Jwt的头部(第一部分)默认格式是{"alg":"HS256"}
                .setHeader(head)
                .compact();//生成令牌,返回字符串

        System.out.println(jwt);

        // 解析令牌
        Jws<Claims> parserJwt = Jwts.parser().setSigningKey("admin")//指定签名秘钥
                .parseClaimsJws(jwt);
        String signature = parserJwt.getSignature();
        Map header = (Map)parserJwt.getHeader();
        Map body = (Map)parserJwt.getBody();
        System.out.println(signature);
        System.out.println(header);
        System.out.println(body);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

2、swagger配置

官网
Knife4j是为javaMVC框架集成Swagger生成API文档的增强解决方案
使用:

1. 导入maven坐标
2. 配置knife4j
3. 设置静态资源映射,重写方法addResourceHandlers,需要继承WebMvcConfigurationSupport
  • 1
  • 2
  • 3

maven坐标:

        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-spring-boot-starter</artifactId>
        </dependency>
  • 1
  • 2
  • 3
  • 4

配置类配置:

    @Bean
    public Docket docket() {
        ApiInfo apiInfo = new ApiInfoBuilder()
                .title("接口文档标题")
                .version("2.0")//版本
                .description("接口文档描述")
                .build();
        Docket docket = new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo)
                .select()
               .apis(RequestHandlerSelectors.basePackage("扫描的包"))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

配置类资源映射:

    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
  • 1
  • 2
  • 3
  • 4

swagger常用注解:

@Api				//对类的说明
@ApiModel			// 描述模型,如实体类
@ApiModelProperty	// 对属性的说明,如实体类中的变量
@ApiOperation		// 对方法的说明
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号