JWT 2
JWT 2
JSON FORMAT:
{
key: val,..
}
JWT Token
xxxxxxxxxxxxxxxxx.yyyyyyyyyyyyyyyyyyy.zzzzzzzzzzzzzzzzzzzzzz
eyJhbGciOiJIUzI1NiJ9.
eyJqdGkiOiJBQjEyNTYiLCJzdWIiOiJBSkFZIiwiaXNzIjoiTmFyZXNoSVQtSFlEIiw
iaWF0IjoxNTk4MTIxNTc1LCJleHAiOjE1OTgxMjIxNzV9.
p8fD-oQxMZW_5c-r4fe2W5Lj87wy_GG0qNaR952cjrs
------------------------
Claims : Get details of a JWT Token using Secret. [Parsing JWT Token]
Input:
-> Token
-> Secret
==========code: JJWT====================================================
#1. Create one Simple Maven Project
<dependencies>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
</dependencies>
import java.util.Base64;
import java.util.Date;
import java.util.concurrent.TimeUnit;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
System.out.println(token);
//-------------------
Claims c =
Jwts.parser() //read token data
.setSigningKey(Base64.getEncoder().encode(key.getBytes())) //secret key
.parseClaimsJws(token) //token
.getBody(); //claims data
-------UTIL class--------------
package in.nareshit.raghu.util;
import java.util.Base64;
import java.util.Date;
import java.util.concurrent.TimeUnit;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
return Jwts.builder()
.setId(id)
.setSubject(subject)
.setIssuer("NareshIT")
.setIssuedAt(new Date(
System.currentTimeMillis()))
.setExpiration(new Date(
System.currentTimeMillis() +
TimeUnit.MINUTES.toMillis(10) ))
.signWith(SignatureAlgorithm.HS256,
Base64.getEncoder().encode(secret.getBytes()))
.compact()
;
}
//2. GetClaims
public Claims getClaims(
String token,
String secret
)
{
return Jwts.parser()
.setSigningKey(
Base64.getEncoder().encode(secret.getBytes()))
.parseClaimsJws(token)
.getBody()
;
}