-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJwtTest.java
More file actions
23 lines (20 loc) · 1.05 KB
/
Copy pathJwtTest.java
File metadata and controls
23 lines (20 loc) · 1.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import javax.crypto.Mac;
public class JwtTest {
public static void main(String[] args) throws Exception {
String token = "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsInJvbGVzIjoiUEFSVElDSVBBTlQiLCJpYXQiOjE3ODE1NTEyMDAsImV4cCI6MTc4MTU4MDAwMH0.Hxy-aoNdMpe93sLnMKgpgXT_kXzBvZCN2yA0uTU0Rmk";
String[] parts = token.split("\\.");
String header = parts[0];
String payload = parts[1];
String sig = parts[2];
String secret = "clearing-platform-jwt-secret-key";
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(new SecretKeySpec(secret.getBytes(StandardCharsets.UTF_8), "HmacSHA256"));
byte[] expected = mac.doFinal((header + "." + payload).getBytes(StandardCharsets.US_ASCII));
String expectedSig = Base64.getUrlEncoder().withoutPadding().encodeToString(expected);
System.out.println("Expected: " + expectedSig);
System.out.println("Actual : " + sig);
}
}