1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- /**
- * YIDATA集成平台
- *
- * http://yiidata.com
- *
- *
- */
- package com.yiidata.amc.hub.config;
- import io.jsonwebtoken.Claims;
- import io.jsonwebtoken.Jwts;
- import io.jsonwebtoken.SignatureAlgorithm;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.boot.context.properties.ConfigurationProperties;
- import org.springframework.stereotype.Component;
- import java.util.Date;
- /**
- * jwt工具类
- *
- * @author Mark sunlightcs@gmail.com
- */
- @ConfigurationProperties(prefix = "amc.jwt")
- @Component
- public class JwtUtils {
- private Logger logger = LoggerFactory.getLogger(getClass());
- private String secret;
- private long expire;
- private String header;
- /**
- * 生成jwt token
- */
- public String generateToken(long userId) {
- Date nowDate = new Date();
- //过期时间
- Date expireDate = new Date(nowDate.getTime() + expire * 1000);
- return Jwts.builder()
- .setHeaderParam("typ", "JWT")
- .setSubject(userId+"")
- .setIssuedAt(nowDate)
- .setExpiration(expireDate)
- .signWith(SignatureAlgorithm.HS512, secret)
- .compact();
- }
- public Claims getClaimByToken(String token) {
- try {
- return Jwts.parser()
- .setSigningKey(secret)
- .parseClaimsJws(token)
- .getBody();
- }catch (Exception e){
- logger.debug("validate is token error ", e);
- return null;
- }
- }
- /**
- * token是否过期
- * @return true:过期
- */
- public boolean isTokenExpired(Date expiration) {
- return expiration.before(new Date());
- }
- public String getSecret() {
- return secret;
- }
- public void setSecret(String secret) {
- this.secret = secret;
- }
- public long getExpire() {
- return expire;
- }
- public void setExpire(long expire) {
- this.expire = expire;
- }
- public String getHeader() {
- return header;
- }
- public void setHeader(String header) {
- this.header = header;
- }
- }
|