maven:
<!-- https://mvnrepository.com/artifact/com.auth0/java-jwt -->
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.9.0</version>
</dependency>
java 代码:
private static String getSignedJwt() throws Exception{
String rootPath = "src/main/resources/static/";
String privatePath = rootPath+"private_key.der";
RSAPrivateKey privateKey = (RSAPrivateKey) PrivateKeyReader.get(privatePath);
String publicPath = rootPath+"public_key.der";
RSAPrivateKey publicKey = (RSAPrivateKey) PrivateKeyReader.get(publicPath);
String kid = new String(Files.readAllBytes(Paths.get(rootPath + "uuid.txt")));
String clientToken = new String(Files.readAllBytes(Paths.get(rootPath +
"token.txt"));
String aud = "https://test.my.com/token/auth ";
long exp = System.currentTimeMillis()/1000L + 300;
String jti = UUID .randomUUID().tostring();
String signed_jwt="";
String iat = System.currentTimeMillis()+"";
try{
Algorithm algorithm = Algorithm.RSA384(publicKey,privateKey);
signed_key=JWT.create().withHeader(new JwtHeaderBuilder(kid).getHeader())
.withClaim("iss",clientToken).withClaim("sub",clientToken)
.withClaim("aud",aud).withClaim("exp",exp)
.withClaim("iat",iat).withClaim("jti",jti)
.sigh(algorithm);
}catch(Exception e){
System.out.println(e.getMessage());
throw e;
}
return signed_jwt;
}