main
HuangHai 3 months ago
parent 7413410012
commit c32965d129

@ -174,8 +174,20 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.jsonwebtoken</groupId> <groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId> <artifactId>jjwt-api</artifactId>
<version>${jjwt.version}</version> <version>${jsonwebtoken.version}</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>${jsonwebtoken.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-jackson</artifactId>
<version>0.11.5</version>
<scope>runtime</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>it.sauronsoftware.cron4j</groupId> <groupId>it.sauronsoftware.cron4j</groupId>

@ -1,10 +1,13 @@
package com.dsideal.dsBase.Util; package com.dsideal.dsBase.Util;
import com.jfinal.kit.PropKit; import com.dsideal.dsBase.BaseApplication;
import io.jsonwebtoken.Claims; import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts; import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm; import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.security.Keys;
import com.jfinal.plugin.activerecord.Record;
import javax.crypto.SecretKey;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
@ -12,10 +15,13 @@ import java.util.Map;
public class JwtUtil { public class JwtUtil {
public static final String AUTHORIZATION_STARTER = "Bearer "; public static final String AUTHORIZATION_STARTER = "Bearer ";
public static final String SECRET = PropKit.get("SECRET"); public static final String SECRET = BaseApplication.PropKit.get("jwt.SECRET");
// 生成安全的密钥
private static final SecretKey key = Keys.hmacShaKeyFor(SECRET.getBytes(StandardCharsets.UTF_8));
/** /**
* JWT * JWT
* *
* @param identity_id ID * @param identity_id ID
* @param person_id ID * @param person_id ID
@ -31,7 +37,11 @@ public class JwtUtil {
claims.put("identity_id", identity_id); claims.put("identity_id", identity_id);
claims.put("person_id", person_id); claims.put("person_id", person_id);
claims.put("bureau_id", bureau_id); claims.put("bureau_id", bureau_id);
return AUTHORIZATION_STARTER + Jwts.builder().setClaims(claims).signWith(SignatureAlgorithm.HS256, SECRET).compact();
return AUTHORIZATION_STARTER + Jwts.builder()
.setClaims(claims)
.signWith(key, SignatureAlgorithm.HS256)
.compact();
} }
public static Claims getClaims(String token) { public static Claims getClaims(String token) {
@ -40,33 +50,40 @@ public class JwtUtil {
} }
Claims claims; Claims claims;
try { try {
claims = Jwts.parser() claims = Jwts.parserBuilder()
.setSigningKey(SECRET) .setSigningKey(key)
.build()
.parseClaimsJws(token) .parseClaimsJws(token)
.getBody(); .getBody();
} catch (Exception e) { } catch (Exception e) {
try { claims = null;
claims = Jwts.parser()
.setSigningKey(SECRET.getBytes(StandardCharsets.UTF_8))
.parseClaimsJws(token)
.getBody();
} catch (Exception err) {
claims = null;
}
} }
return claims; return claims;
} }
/**
*
*
* @param token
* @return
*/
public static Record getPersonInfo(String token) {
Record record = new Record();
Claims claims = getClaims(token);
if (claims != null) {
record.set("identity_id", claims.get("identity_id"));
record.set("person_id", claims.get("person_id"));
record.set("bureau_id", claims.get("bureau_id"));
record.set("create_time", claims.get("create_time"));
}
return record;
}
public static void main(String[] args) { public static void main(String[] args) {
//GwApplication gw = new GwApplication();
String token = generateToken(4, "0b64e31e-a85e-43eb-ba5f-3088d986a8da", "3f7f4c90-645a-4fb9-9902-447846cf1dcc"); String token = generateToken(4, "0b64e31e-a85e-43eb-ba5f-3088d986a8da", "3f7f4c90-645a-4fb9-9902-447846cf1dcc");
/** System.out.println(token);
1JWTidentity_id,person_idbureau_id Record record=getPersonInfo(token);
*/ System.out.println(record);
Claims claims = getClaims(token);
System.out.println(claims.get("identity_id"));
System.out.println(claims.get("person_id"));
System.out.println(claims.get("bureau_id"));
} }
} }

@ -132,7 +132,7 @@
<!-- JWT相关 --> <!-- JWT相关 -->
<dependency> <dependency>
<groupId>io.jsonwebtoken</groupId> <groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId> <artifactId>jjwt-api</artifactId>
<version>${jjwt.version}</version> <version>${jjwt.version}</version>
</dependency> </dependency>

@ -221,7 +221,7 @@
<!-- JWT认证 --> <!-- JWT认证 -->
<dependency> <dependency>
<groupId>io.jsonwebtoken</groupId> <groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId> <artifactId>jjwt-api</artifactId>
<version>${jjwt.version}</version> <version>${jjwt.version}</version>
</dependency> </dependency>

@ -4,10 +4,8 @@ import io.jsonwebtoken.Claims;
import io.jsonwebtoken.ExpiredJwtException; import io.jsonwebtoken.ExpiredJwtException;
import io.jsonwebtoken.Jwts; import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm; import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.impl.DefaultClaims;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.net.http.HttpRequest;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;

@ -81,7 +81,8 @@
<jsch.version>0.2.19</jsch.version> <jsch.version>0.2.19</jsch.version>
<!-- 安全认证 --> <!-- 安全认证 -->
<jjwt.version>0.7.0</jjwt.version> <jjwt.version>0.11.5</jjwt.version>
<jsonwebtoken.version>0.11.5</jsonwebtoken.version>
<!-- 工具类库 --> <!-- 工具类库 -->
<hutool.version>5.8.37</hutool.version> <hutool.version>5.8.37</hutool.version>

Loading…
Cancel
Save