JWT校验令牌
【摘要】 package com.easy.archiecture.support;
import com.auth0.jwt.JWTSigner;
import com.auth0.jwt.JWTVerifier;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.j...
package com.easy.archiecture.support;
import com.auth0.jwt.JWTSigner;
import com.auth0.jwt.JWTVerifier;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.HashMap;
import java.util.Map;
public class JWTUtil_mxd { private static final String SECRET = "!=end=!"; private static final String PAYLOAD = "payload"; private static final String EXP = "exp";
//加密,传入一个对象和一个有效期,MXD public static <T> String sign(T object,long maxAge){ try { //create a sign ,param是一个 final JWTSigner signer = new JWTSigner(SECRET); //claims 要求 final HashMap<String, Object> claims = new HashMap<>(); //通过jackson的api将对象转换成json ObjectMapper mapper = new ObjectMapper(); String jsonString = mapper.writeValueAsString(object); claims.put(PAYLOAD,jsonString); claims.put(EXP,System.currentTimeMillis()+maxAge); return signer.sign(claims); } catch (JsonProcessingException e) { return null; } }
//解密,传入一个加密的token+解密后的类型 public static <T> T unsign (String jwt,Class<T> tClass){ //传入秘钥,进行解密 final JWTVerifier verifier = new JWTVerifier(SECRET); try{ final Map<String, Object> claims= verifier.verify(jwt); if(claims.containsKey(EXP) && claims.containsKey(PAYLOAD)){ long exp = (long) claims.get(EXP); long currentTimeMillis = System.currentTimeMillis(); if(exp>currentTimeMillis){ String json = (String) claims.get(PAYLOAD); //payload有效值 ObjectMapper objectMapper = new ObjectMapper(); return objectMapper.readValue(json,tClass); } } return null; } catch (Exception e){ return null; } }
}
- 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
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
文章来源: blog.csdn.net,作者:East Horse,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_44613138/article/details/108694576
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)