|
1 | 1 | package com.bastiaanjansen.jwt; |
2 | 2 |
|
3 | 3 | import com.bastiaanjansen.jwt.Algorithms.Algorithm; |
| 4 | +import com.bastiaanjansen.jwt.Exceptions.JWTCreationException; |
4 | 5 | import com.bastiaanjansen.jwt.Exceptions.JWTException; |
5 | 6 |
|
6 | 7 | import java.security.*; |
|
14 | 15 | import java.util.Date; |
15 | 16 |
|
16 | 17 | public class App { |
17 | | - public static void main(String[] args) throws NoSuchAlgorithmException, InvalidKeySpecException { |
18 | | - |
19 | | -// KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); |
20 | | -// keyPairGenerator.initialize(2048, new SecureRandom()); |
21 | | -// KeyPair pair = keyPairGenerator.generateKeyPair(); |
22 | | - |
23 | | -// System.out.println("Public: " + Base64.getEncoder().encodeToString(pair.getPublic().getEncoded())); |
24 | | -// System.out.println("Private: " + Base64.getEncoder().encodeToString(pair.getPrivate().getEncoded())); |
25 | | - |
26 | | - String publicKeyContent = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm5PpsWJJvL3W+N0wiLniRbbrKx5qhxob/1hEfEzCOQLwl8pbO5UiuTE7nhdvHyCmQhAexpKIL0PRpKwHEWNN/KOxAZ5xdSIZU6W44Inq/hkK5ugbCViV4ONnpz+I1XoDNAi4ITJVpIPyqu2r4C4BTAZnozca8fe7p6VYzECnP3OZT+ELota4TRy3G5W6WIFayftGuvx0dncJOgy6SUaNuUBs2t9KXFHmxfYCz78WLq3QWDz21f1siqib+qHAdH5aNlPAkpqyP2hPLoc8VHKKs+Eb0QlkpW9ZABoybrHCWnPI1C4mdLMQ4MWqEgKKWvqrjDZDBfRfk6U/VUDuneQ9ZwIDAQAB"; |
27 | | - String privateKeyContent = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCbk+mxYkm8vdb43TCIueJFtusrHmqHGhv/WER8TMI5AvCXyls7lSK5MTueF28fIKZCEB7GkogvQ9GkrAcRY038o7EBnnF1IhlTpbjgier+GQrm6BsJWJXg42enP4jVegM0CLghMlWkg/Kq7avgLgFMBmejNxrx97unpVjMQKc/c5lP4Qui1rhNHLcblbpYgVrJ+0a6/HR2dwk6DLpJRo25QGza30pcUebF9gLPvxYurdBYPPbV/WyKqJv6ocB0flo2U8CSmrI/aE8uhzxUcoqz4RvRCWSlb1kAGjJuscJac8jULiZ0sxDgxaoSAopa+quMNkMF9F+TpT9VQO6d5D1nAgMBAAECggEATT58SiktyTtMb9WKkmgQc2KlkowQgjGxcu9FWZ3W1O2jvQmokIW0btSF8DFcZ80THzvXu+nnGeiHP0Z2X+i5QNWZPd+IH4slngVrLHjtpumSIyFcwyArkjP2M/D0pGFnE7+8hCb0pLEqnDlTHARben63mC70/uxsTIlo9EipgXPCOBDAd/QsE3dhlO4SbEmCJMQR6eV1B8an+40ZbhQCG8IO832jDiDYabS5tyOPgU2ahG5UhzqsfPFQBlgJ2ePPyXXYaQlS1Gj8OD3ISJbCSxiitejbKjSaGsjoBv+81lkd3vqOYSZQDMf02rSRwp57mFfZ3G7Yk9lS+Q8abmUsyQKBgQDUtzLp3O+1363sT8lAjO9zWEXAqWT38mNaBqjR5c3Kv18xzm9LjTd9GfEgYgFmN6fkr1I85ZI35wR6pKjjJwUVci6615N2ghhTrcw9f8/zD/IejVPmYYIUdfRQ9FTlvM/RhDRCiyd1k7xQ/uGfy+Swu4bSzypzHUYeVQ6Xv5c/YwKBgQC7PEjjkzcLjn0EJcgnW11Md+Yrvg9NBKJO2JdMXfwRhN2NDAobbshJqaZeffgrTfU8KuGLmGNPE7UFnxOGnIVdDQwvjhde4LWuL/R6n10zu3tCmqvxBx7yzSO1+Ldi5bT9VI04x/gnGPQn489p0GBNWrN3AmC+RFXOridoVItTLQKBgBu3HvgfpFADK+sdXjB97HkP6E65A4HW4CELuxVWJuEi3ClmJ1QluzQenC9G9b22xLZkLYfntYx5GjlMmQC3xc7MiNApZHpNaxQEEhd1PsgBrN9UNLlQvR0jXUjq/ODOIBnBavm8ndCRBjlbbFRgwZRRariu624CQ2+ST4twGCnXAoGBAKvajGhdgiOYWEULTKhbIsqCLoCtxSuC+lr2UACnLysBUb0ZdNlzGGEMVwjaBIPy3QmprjVL3LMDOp77QJfIaFxdEnc/q1HJXNiRaYt3ZLuL9HnQr8reJ1jiU0m+DMy4XCQ9jBW27Z0tOUS3w3Oy8AFwI9MzGoro+/1lOgR3vR3NAoGAdmP0aPZfFHM6mdtkKVmNjPM8BTYhok+pEBzntNosUGqIT2u+TPFDV8aTYEti6mIrMVTO1mHRoqi9VL0WDHRT3IqTn3JE+KR2fUlMSE/PqW8MJ+70EhelgJj+bL6iyecnPqdquES57DYoFkdvqtz0qNL2gdzK5ay55YWgYbk0szw="; |
28 | | - |
29 | | - KeyFactory kf = KeyFactory.getInstance("RSA"); |
30 | | - |
31 | | - PKCS8EncodedKeySpec keySpecPKCS8 = new PKCS8EncodedKeySpec(Base64.getDecoder().decode(privateKeyContent)); |
32 | | - PrivateKey privateKey = kf.generatePrivate(keySpecPKCS8); |
33 | | - |
34 | | - X509EncodedKeySpec keySpecX509 = new X509EncodedKeySpec(Base64.getDecoder().decode(publicKeyContent)); |
35 | | - RSAPublicKey publicKey = (RSAPublicKey) kf.generatePublic(keySpecX509); |
36 | | - |
37 | | - KeyPair keyPair = new KeyPair(publicKey, privateKey); |
38 | | - |
39 | | - Algorithm algorithm = Algorithm.RSA384(keyPair); |
| 18 | + public static void main(String[] args) throws JWTCreationException { |
| 19 | + Algorithm algorithm = Algorithm.HMAC256("secret"); |
40 | 20 | JWT.Builder builder = new JWT.Builder(algorithm); |
41 | 21 |
|
42 | | - Calendar now = Calendar.getInstance(); |
43 | | - now.add(Calendar.SECOND, -10); |
44 | | - |
45 | | -// builder |
46 | | -// .withIssuer("issuer") |
47 | | -// .withAudience("audience", "audience2") |
48 | | -// .withID("id") |
49 | | -// .withIssuedAt(new Date()) |
50 | | -// .withNotBefore(now.getTime()) |
51 | | -// .withClaim("username", "BastiaanJansen") |
52 | | -// .withHeader("test", "test"); |
53 | | - |
54 | | - builder.withClaim("sd", "sd"); |
55 | | - |
56 | | - try { |
57 | | - JWT jwt = builder.build(); |
58 | | - |
59 | | -// JWT newJWT = JWT.fromRawJWT(algorithm, "eyJhbGciOiJIUzM4NCIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJpc3N1ZXIiLCJhdWQiOiJhdWRpZW5jZSIsImlhdCI6MTYxNDY3NjkyNjE3MiwianRpIjoiaWQifQ.ibsMduBXhE8Y1TkDAazH-J7BaAtcJTcwmHfzvQg9EWS6uKZFsA_7z4LYtSa-nnR1"); |
60 | | - |
61 | | - jwt.validate(); |
62 | | -// |
63 | | - System.out.println("JWT: " + jwt.sign()); |
64 | | -// |
65 | | - jwt.validate(); |
66 | | - |
67 | | -// JWTValidator verifier = new DefaultJWTValidator.Builder() |
68 | | -// .withType("JWT") |
69 | | -// .withNotBefore(now.getTime()) |
70 | | -// .withOneOfAudience("audience") |
71 | | -// .withClaim("username", "BastiaanJansen"::equals) |
72 | | -// .withHeader("test", "test"::equals) |
73 | | -// .build(); |
74 | | -// verifier.validate(jwt); |
75 | | - |
76 | | - Payload payload = jwt.getPayload(); |
| 22 | + JWT jwt = builder.build(); |
77 | 23 |
|
78 | | - } catch (JWTException e) { |
79 | | - e.printStackTrace(); |
80 | | - } |
| 24 | + System.out.println(jwt.sign()); |
81 | 25 | } |
82 | 26 | } |
83 | 27 |
|
0 commit comments