JWTDecoder.java
1.19 KB
package com.zhaoonline.coupen.jwt;
import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTVerifier;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.interfaces.DecodedJWT;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
/**
* Created by ZhaoOnline<br/>
* User: yangyoupeng<br/>
* Date: 2016/12/14<br/>
* Time: 10:38<br/>
* Description:please descript you class
*/
public class JWTDecoder {
private static ObjectMapper objectMapper =new ObjectMapper();
JWTVerifier verifier = null;
JWTConfig config =new JWTConfig();
public JWTDecoder(JWTConfig config) throws UnsupportedEncodingException {
this.config= config;
verifier =JWT.require(Algorithm.HMAC256(config.getPassword()))
.withIssuer(config.getIssuer())
.build();
}
public <T> T decode(String jwtToken,Class<T> clazz ) throws IOException {
DecodedJWT jwt = verifier.verify(jwtToken);
java.lang.String coupenJsonString= jwt.getClaim(config.getEncodeKeyName()).asString();
T decodeCoupen= objectMapper.readValue(coupenJsonString,clazz);
return decodeCoupen;
}
}