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;
    }
}