main
黄海 11 months ago
parent 84839d2d79
commit d4a50cedd7

@ -125,23 +125,12 @@
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
<!--加载jwt-->
<!--https://blog.csdn.net/AdminGuan/article/details/100147488-->
<!--JWT,用于鉴权-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>0.11.2</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>0.11.2</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-jackson</artifactId>
<version>0.11.2</version>
<scope>runtime</scope>
<artifactId>jjwt</artifactId>
<version>0.7.0</version>
</dependency>
<!--引用json库-->
<dependency>

@ -0,0 +1,21 @@
package UnitTest;
import io.jsonwebtoken.Claims;
public class JWT {
public static void main(String[] args) {
String Authorization = "Bearer eyJhbGciOiJIUzUxMiJ9.eyJkYXRlIjoiVHVlIEF1ZyAwNiAxMzozNzowNSBDU1QgMjAyNCIsInBob25lIjoiMTM3NTY1MTE5OTAiLCJ0eXBlIjoiV1giLCJ1c2VySWQiOiI5NDMxMiJ9.LhDheTMd_dZjR_0_cCT7aNy9waC105gMwmon7j5xPUPEmuiuZ2tToSWnjMVvzzWTKMvsvr7oZZXDJcr6h_Kv9g";
String token = Authorization.replaceFirst(JwtUtil.AUTHORIZATION_STARTER, "");
Claims cs = JwtUtil.getClaimsFromToken(token, JwtUtil.SECRET);
System.out.println(cs);
//String secret, String userId,String phone, String date,String type
//String jwt = JwtUtil.generateToken(JwtUtil.SECRET, "1", "18686619970", "2021-09-01 00:00:00", "1");
//System.out.println(jwt);
//String operatorId = (String) cs.get(JwtUtil.CLAIM_KEY_OPERATORID);
//String tokenTmp = JwtUtil.generateToken(token, JwtUtil.SECRET, operatorId, String.valueOf(cs.getExpiration()));
//System.out.println(tokenTmp);
}
}

@ -0,0 +1,90 @@
package UnitTest;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* Created by zhzhan on 2017/6/30.
*/
public class JwtUtil {
public static final String AUTHORIZATION_MONITOR_STARTER="Monitor ";
public static final String AUTHORIZATION_STARTER = "Bearer ";
public static final String CLAIM_KEY_USERID = "userId";
public static final String CLAIM_KEY_OPERATORID = "operatorId";
public static final String CLAIM_KEY_PHONE = "phone";
public static final String CLAIM_KEY_DATE = "date";
public static final String CLAIM_KEY_TYPE = "type";
public static final String SECRET = "ZXZnZWVr5b+r5LmQ5L2g55qE5Ye66KGM";
public static final String CLAIM_MONITOR_ACCOUNT_NAME="accountName";
public static String generateToken(String secret, String userId,String phone,String type) {
Date date = new Date();
return generateToken(secret, userId,phone, date.toString(),type);
}
public static String generateToken(String secret, String userId,String phone, String date,String type) {
Map<String, Object> claims = new HashMap<>();
claims.put(JwtUtil.CLAIM_KEY_USERID, userId);
claims.put(JwtUtil.CLAIM_KEY_PHONE, phone);
claims.put(JwtUtil.CLAIM_KEY_DATE, date);
claims.put(JwtUtil.CLAIM_KEY_TYPE, type);
return Jwts.builder()
.setClaims(claims)
// .setExpiration(date)
.signWith(SignatureAlgorithm.HS512, secret) //采用什么算法是可以自己选择的不一定非要采用HS512
.compact();
}
public static String generateTokenMonitor(String secret, String userId,String phone,String type,String accountName) {
Date date = new Date();
return generateTokenMonitor(secret, userId,phone, date.toString(),type,accountName);
}
public static String generateTokenMonitor(String secret, String userId,String phone, String date,String type,String accountName) {
Map<String, Object> claims = new HashMap<>();
claims.put(JwtUtil.CLAIM_KEY_USERID, userId);
claims.put(JwtUtil.CLAIM_KEY_PHONE, phone);
claims.put(JwtUtil.CLAIM_KEY_DATE, date);
claims.put(JwtUtil.CLAIM_KEY_TYPE, type);
claims.put(JwtUtil.CLAIM_MONITOR_ACCOUNT_NAME, accountName);
return Jwts.builder()
.setClaims(claims)
// .setExpiration(date)
.signWith(SignatureAlgorithm.HS512, secret) //采用什么算法是可以自己选择的不一定非要采用HS512
.compact();
}
public static String generateToken(String secret, String operatorId, Date date) {
Map<String, Object> claims = new HashMap<>();
claims.put(JwtUtil.CLAIM_KEY_OPERATORID, operatorId);
return Jwts.builder()
.setClaims(claims)
.setExpiration(date)
.signWith(SignatureAlgorithm.HS512, secret) //采用什么算法是可以自己选择的不一定非要采用HS512
.compact();
}
public static Claims getClaimsFromToken(String token, String secret) {
Claims claims;
try {
claims = Jwts.parser()
.setSigningKey(secret)
.parseClaimsJws(token)
.getBody();
} catch (Exception e) {
claims = null;
}
return claims;
}
}
Loading…
Cancel
Save