springboot jjwt

阅读数:83 评论数:0

跳转到新版页面

分类

python/Java

正文

JJWT 全称Java Json Web Token。

而JWT是一种在两方之间传输信息的方法,在jwt的主体中编码的信息被称为claims。jwt的扩展形式是json,因此每个claim都是json对象中的一个键。

jwts增强了可验证性,接收都可以确定jwt没有通过验证签名来篡改。jwts可以加密签名成为jws,或加密成为jwe。

jwts生成的jwt的结果有三个部分的字符串,每个部分由“.”分隔。

1、每一部分都是base 64编码,称为header,必须指定用于签署jwt的算法。

2、第二部分是body,包含了jwt编码的所有声明。

3、第三部分是signature,它通过在头文件中指定的算法通过header和body的组合来计算。

 
header
 
{
  "alg": "HS256"
}
body
 
{
  "sub": "Joe"

在这种情况下,我们得到的信息是使用sha-256算法的HMAC来签署JWT,而且有一个claim sub与value Joe。claims包含一些标准的claims,所有claim都是可选的,并且是大小写敏感的。

1、iss

issuer,是签发该证书的负责人。

2、sub

subject,主体

3、aud

Audience,是指jwt的接受者。

4、exp

expiration time,过期时间。

5、nbf

Not before,开始日期

6、iat

issued at,是指jwt的发行时间

7、jti

jwt id,jwt提供唯一的标识符。

maven依赖

            <dependency>
			<groupId>io.jsonwebtoken</groupId>
			<artifactId>jjwt</artifactId>
			<version>0.9.1</version>
		</dependency>

编码解码

String compactJws =  Jwts.builder()
    .setSubject("Joe")
    .compressWith(CompressionCodecs.DEFLATE)
    .signWith(SignatureAlgorithm.HS512, key)
    .compact();
try {
    Jws<Claims> claims = Jwts.parser()
        .requireSubject("Joe")
        .require("hasMotorcycle", true)
        .setSigningKey(key)
        .parseClaimsJws(compactJws);
} catch (MissingClaimException e) {
 
    // we get here if the required claim is not present
 
} catch (IncorrectClaimException e) {
 
    // we get here if the required claim has the wrong value
 
}



相关推荐

一、request uri部分 @PathVariable 获取路径参数,形如url/{id} 二、request header部分 @RequestHeade

一、概述 一个项目使用多个数据库(无论是主从复制--读写分离还是分布式数据库结构)的重要性变得越来越明显,整合的多数据源有两种方式:分包和aop。 1、SqlSessionTemplate SqlSe

一、概述 PageHelper是开源免费的mybatis第三方分页插件。 二、使用 1、pom引入 <dependency> <groupId>com.github.pageh

一、日志框架的介绍 Spring Boot 2.*默认采用slf4j+logback的形式,slf4j是个通用的日志门面,logback就是个具体的日志框架了。

一、问题解决方式 @PostMapping("/insert") @ResponseBody private ResultVO insert1(@RequestParam Map<String, St

POM依赖 &lt;dependency&gt; &lt;groupId&g

一、概述 @EnableConfigurationProperties注解的作用是:让使用了@ConfigurationProperties注解的类生效,并且将该类注入到IOC容器中,交由IOC容器进

一、概述 Druid(德鲁伊)是Java语言中的数据库连接池,Spring Boot 2.x默认使用Hikari数据源,虽然HikariCP的速度稍快,但是,Druid能够提供强大的监控和扩展功能。

1、配置文件的格式 springboot可以识别两种格式的配置文件,分别是yml文件与properties文件,我们可以将application.properties文件换成a

一、概述 ApplicationContext事件机制是观察者设计模式的实现,通过ApplicationEvent类和ApplicationListener接口,可以实现ApplicationCont