From c635d78b479510ebe2556a420948effcd30a0731 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期六, 21 十二月 2024 18:40:43 +0800 Subject: [PATCH] 新建德森项目分支 --- zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/JwtUtil.java | 286 ++++++++++++++++++++++++++++---------------------------- 1 files changed, 143 insertions(+), 143 deletions(-) diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/JwtUtil.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/JwtUtil.java index f955af9..79e8033 100644 --- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/JwtUtil.java +++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/JwtUtil.java @@ -1,143 +1,143 @@ -package com.zy.asrs.wms.utils; - - -import com.alibaba.fastjson.JSON; -import com.zy.asrs.framework.common.Cools; -import com.zy.asrs.wms.common.constant.Constants; -import com.zy.asrs.wms.common.security.JwtSubject; -import io.jsonwebtoken.Claims; -import io.jsonwebtoken.Jwts; -import io.jsonwebtoken.SignatureAlgorithm; -import io.jsonwebtoken.io.Decoders; -import io.jsonwebtoken.io.Encoders; -import io.jsonwebtoken.security.Keys; - -import javax.servlet.http.HttpServletRequest; -import java.security.Key; -import java.util.Date; - -/** - * JWT宸ュ叿绫� - * - * @author vincent - * @since 2018-01-21 16:30:59 - */ -public class JwtUtil { - - /** - * 鑾峰彇璇锋眰涓殑access_token - * - * @param request HttpServletRequest - * @return String - */ - public static String getAccessToken(HttpServletRequest request) { - String access_token = request.getHeader(Constants.TOKEN_HEADER_NAME); - if (!Cools.isEmpty(access_token)) { - if (access_token.startsWith(Constants.TOKEN_TYPE)) { - access_token = Utils.removePrefix(access_token, Constants.TOKEN_TYPE).trim(); - } - } else { - access_token = request.getParameter(Constants.TOKEN_PARAM_NAME); - } - return access_token; - } - - - /** - * 鐢熸垚token - * - * @param subject 杞戒綋 - * @param expire 杩囨湡鏃堕棿 - * @param base64EncodedKey base64缂栫爜鐨凨ey - * @return token - */ - public static String buildToken(JwtSubject subject, Long expire, String base64EncodedKey) { - return buildToken(JSON.toJSONString(subject), expire, decodeKey(base64EncodedKey)); - } - - /** - * 鐢熸垚token - * - * @param subject 杞戒綋 - * @param expire 杩囨湡鏃堕棿 - * @param key 瀵嗛挜 - * @return token - */ - public static String buildToken(String subject, Long expire, Key key) { - Date expireDate = new Date(new Date().getTime() + 1000 * expire); - return Jwts.builder() - .setSubject(subject) - .setExpiration(expireDate) - .setIssuedAt(new Date()) - .signWith(key) - .compact(); - } - - /** - * 瑙f瀽token - * - * @param token token - * @param base64EncodedKey base64缂栫爜鐨凨ey - * @return Claims - */ - public static Claims parseToken(String token, String base64EncodedKey) { - return parseToken(token, decodeKey(base64EncodedKey)); - } - - /** - * 瑙f瀽token - * - * @param token token - * @param key 瀵嗛挜 - * @return Claims - */ - public static Claims parseToken(String token, Key key) { - return Jwts.parserBuilder() - .setSigningKey(key) - .build() - .parseClaimsJws(token) - .getBody(); - } - - /** - * 鑾峰彇JwtSubject - * - * @param claims Claims - * @return JwtSubject - */ - public static JwtSubject getJwtSubject(Claims claims) { - return JSON.parseObject(claims.getSubject(), JwtSubject.class); - } - - /** - * 鐢熸垚Key - * - * @return Key - */ - public static Key randomKey() { - return Keys.secretKeyFor(SignatureAlgorithm.HS256); - } - - /** - * base64缂栫爜key - * - * @return String - */ - public static String encodeKey(Key key) { - return Encoders.BASE64.encode(key.getEncoded()); - } - - /** - * base64缂栫爜Key - * - * @param base64EncodedKey base64缂栫爜鐨刱ey - * @return Key - */ - public static Key decodeKey(String base64EncodedKey) { - if (Cools.isEmpty(base64EncodedKey)) { - return null; - } - return Keys.hmacShaKeyFor(Decoders.BASE64.decode(base64EncodedKey)); - } - -} +package com.zy.asrs.wms.utils; + + +import com.alibaba.fastjson.JSON; +import com.zy.asrs.framework.common.Cools; +import com.zy.asrs.wms.common.constant.Constants; +import com.zy.asrs.wms.common.security.JwtSubject; +import io.jsonwebtoken.Claims; +import io.jsonwebtoken.Jwts; +import io.jsonwebtoken.SignatureAlgorithm; +import io.jsonwebtoken.io.Decoders; +import io.jsonwebtoken.io.Encoders; +import io.jsonwebtoken.security.Keys; + +import javax.servlet.http.HttpServletRequest; +import java.security.Key; +import java.util.Date; + +/** + * JWT宸ュ叿绫� + * + * @author vincent + * @since 2018-01-21 16:30:59 + */ +public class JwtUtil { + + /** + * 鑾峰彇璇锋眰涓殑access_token + * + * @param request HttpServletRequest + * @return String + */ + public static String getAccessToken(HttpServletRequest request) { + String access_token = request.getHeader(Constants.TOKEN_HEADER_NAME); + if (!Cools.isEmpty(access_token)) { + if (access_token.startsWith(Constants.TOKEN_TYPE)) { + access_token = Utils.removePrefix(access_token, Constants.TOKEN_TYPE).trim(); + } + } else { + access_token = request.getParameter(Constants.TOKEN_PARAM_NAME); + } + return access_token; + } + + + /** + * 鐢熸垚token + * + * @param subject 杞戒綋 + * @param expire 杩囨湡鏃堕棿 + * @param base64EncodedKey base64缂栫爜鐨凨ey + * @return token + */ + public static String buildToken(JwtSubject subject, Long expire, String base64EncodedKey) { + return buildToken(JSON.toJSONString(subject), expire, decodeKey(base64EncodedKey)); + } + + /** + * 鐢熸垚token + * + * @param subject 杞戒綋 + * @param expire 杩囨湡鏃堕棿 + * @param key 瀵嗛挜 + * @return token + */ + public static String buildToken(String subject, Long expire, Key key) { + Date expireDate = new Date(new Date().getTime() + 1000 * expire); + return Jwts.builder() + .setSubject(subject) + .setExpiration(expireDate) + .setIssuedAt(new Date()) + .signWith(key) + .compact(); + } + + /** + * 瑙f瀽token + * + * @param token token + * @param base64EncodedKey base64缂栫爜鐨凨ey + * @return Claims + */ + public static Claims parseToken(String token, String base64EncodedKey) { + return parseToken(token, decodeKey(base64EncodedKey)); + } + + /** + * 瑙f瀽token + * + * @param token token + * @param key 瀵嗛挜 + * @return Claims + */ + public static Claims parseToken(String token, Key key) { + return Jwts.parserBuilder() + .setSigningKey(key) + .build() + .parseClaimsJws(token) + .getBody(); + } + + /** + * 鑾峰彇JwtSubject + * + * @param claims Claims + * @return JwtSubject + */ + public static JwtSubject getJwtSubject(Claims claims) { + return JSON.parseObject(claims.getSubject(), JwtSubject.class); + } + + /** + * 鐢熸垚Key + * + * @return Key + */ + public static Key randomKey() { + return Keys.secretKeyFor(SignatureAlgorithm.HS256); + } + + /** + * base64缂栫爜key + * + * @return String + */ + public static String encodeKey(Key key) { + return Encoders.BASE64.encode(key.getEncoded()); + } + + /** + * base64缂栫爜Key + * + * @param base64EncodedKey base64缂栫爜鐨刱ey + * @return Key + */ + public static Key decodeKey(String base64EncodedKey) { + if (Cools.isEmpty(base64EncodedKey)) { + return null; + } + return Keys.hmacShaKeyFor(Decoders.BASE64.decode(base64EncodedKey)); + } + +} -- Gitblit v1.9.1