Skip to content

Commit d0e297e

Browse files
committed
Generate up to date JWT tokens for testing.
Motivation: JWTAuthProviderTest use expired tokens.
1 parent 1a95743 commit d0e297e

File tree

1 file changed

+25
-8
lines changed

1 file changed

+25
-8
lines changed

vertx-auth-jwt/src/test/java/io/vertx/ext/auth/test/jwt/JWTAuthProviderTest.java

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import io.vertx.ext.auth.authentication.CredentialValidationException;
2323
import io.vertx.ext.auth.authentication.TokenCredentials;
2424
import io.vertx.ext.auth.authorization.PermissionBasedAuthorization;
25+
import io.vertx.ext.auth.impl.jose.JWK;
2526
import io.vertx.ext.auth.jwt.JWTAuth;
2627
import io.vertx.ext.auth.jwt.JWTAuthOptions;
2728
import io.vertx.ext.auth.jwt.authorization.JWTAuthorization;
@@ -34,8 +35,20 @@
3435
import org.junit.Test;
3536
import org.junit.runner.RunWith;
3637

38+
import javax.crypto.Mac;
39+
import java.io.InputStream;
3740
import java.nio.charset.StandardCharsets;
41+
import java.security.KeyStore;
42+
import java.security.KeyStoreException;
43+
import java.text.SimpleDateFormat;
44+
import java.time.*;
45+
import java.time.temporal.ChronoUnit;
46+
import java.time.temporal.TemporalUnit;
3847
import java.util.Base64;
48+
import java.util.Date;
49+
import java.util.List;
50+
import java.util.Optional;
51+
import java.util.concurrent.TimeUnit;
3952

4053
import static org.junit.Assert.assertNotEquals;
4154

@@ -48,14 +61,18 @@ public class JWTAuthProviderTest {
4861
private JWTAuth authProvider;
4962

5063
// {"sub":"Paulo","exp":1747055313,"iat":1431695313,"permissions":["read","write","execute"],"roles":["admin","developer","user"]}
51-
private static final String JWT_VALID = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJQYXVsbyIsImV4cCI6MTc0NzA1NTMxMywiaWF0IjoxNDMxNjk1MzEzLCJwZXJtaXNzaW9ucyI6WyJyZWFkIiwid3JpdGUiLCJleGVjdXRlIl0sInJvbGVzIjpbImFkbWluIiwiZGV2ZWxvcGVyIiwidXNlciJdfQ.UdA6oYDn9s_k7uogFFg8jvKmq9RgITBnlq4xV6JGsCY";
64+
private static final String JWT_CLAIMS = "{\"sub\":\"Paulo\",\"exp\":1747055313,\"iat\":1431695313,\"permissions\":[\"read\",\"write\",\"execute\"],\"roles\":[\"admin\",\"developer\",\"user\"]}";
5265

5366
// {"sub":"Paulo","iat":1400159434,"exp":1400245834,"roles":["admin","developer","user"],"permissions":["read","write","execute"]}
5467
private static final String JWT_INVALID = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJQYXVsbyIsImlhdCI6MTQwMDE1OTQzNCwiZXhwIjoxNDAwMjQ1ODM0LCJyb2xlcyI6WyJhZG1pbiIsImRldmVsb3BlciIsInVzZXIiXSwicGVybWlzc2lvbnMiOlsicmVhZCIsIndyaXRlIiwiZXhlY3V0ZSJdfQ==.NhHul0OFlmUaatFwNeGBbshVNzac2z_3twEEg57x80s=";
5568

69+
private final long exp = LocalDateTime.now().plusDays(1).toEpochSecond(ZoneOffset.UTC);
70+
private String jwtValid;
71+
5672
@Before
5773
public void setUp() throws Exception {
5874
authProvider = JWTAuth.create(rule.vertx(), getConfig());
75+
jwtValid = authProvider.generateToken(new JsonObject(JWT_CLAIMS).put("exp", exp));
5976
}
6077

6178
private JWTAuthOptions getConfig() {
@@ -90,7 +107,7 @@ public void testCreateWithoutFailureWhenAliasDoesNotExist() {
90107
public void testValidJWT(TestContext should) {
91108
final Async test = should.async();
92109

93-
TokenCredentials authInfo = new TokenCredentials(JWT_VALID);
110+
TokenCredentials authInfo = new TokenCredentials(jwtValid);
94111
authProvider
95112
.authenticate(authInfo)
96113
.onFailure(should::fail)
@@ -137,7 +154,7 @@ public void testInvalidJWT(TestContext should) {
137154
public void testJWTValidPermission(TestContext should) {
138155
final Async test = should.async();
139156

140-
TokenCredentials authInfo = new TokenCredentials(JWT_VALID);
157+
TokenCredentials authInfo = new TokenCredentials(jwtValid);
141158
authProvider.authenticate(authInfo)
142159
.onFailure(should::fail)
143160
.onSuccess(user -> {
@@ -154,7 +171,7 @@ public void testJWTValidPermission(TestContext should) {
154171
public void testJWTInvalidPermission(TestContext should) {
155172
final Async test = should.async();
156173

157-
TokenCredentials authInfo = new TokenCredentials(JWT_VALID);
174+
TokenCredentials authInfo = new TokenCredentials(jwtValid);
158175
authProvider.authenticate(authInfo)
159176
.onFailure(should::fail)
160177
.onSuccess(user -> {
@@ -172,7 +189,7 @@ public void testGenerateNewToken(TestContext should) {
172189

173190
JsonObject payload = new JsonObject()
174191
.put("sub", "Paulo")
175-
.put("exp", 1747055313)
192+
.put("exp", exp)
176193
.put("iat", 1431695313)
177194
.put("permissions", new JsonArray()
178195
.add("read")
@@ -185,7 +202,7 @@ public void testGenerateNewToken(TestContext should) {
185202

186203
String token = authProvider.generateToken(payload, new JWTOptions().setSubject("Paulo"));
187204
should.assertNotNull(token);
188-
should.assertEquals(JWT_VALID, token);
205+
should.assertEquals(jwtValid, token);
189206
}
190207

191208
@Test
@@ -506,7 +523,7 @@ public void testAcceptInvalidJWT(TestContext should) {
506523
}
507524

508525
@Test
509-
public void testAlgNone(TestContext should) {
526+
public void testAlgNone(TestContext should) throws Exception {
510527
final Async test = should.async();
511528

512529
JWTAuth authProvider = JWTAuth.create(rule.vertx(), new JWTAuthOptions());
@@ -515,7 +532,7 @@ public void testAlgNone(TestContext should) {
515532
.put("sub", "UserUnderTest")
516533
.put("aud", "OrganizationUnderTest")
517534
.put("iat", 1431695313)
518-
.put("exp", 1747055313)
535+
.put("exp", LocalDateTime.now().plusDays(1).toEpochSecond(ZoneOffset.UTC))
519536
.put("roles", new JsonArray().add("admin").add("developer").add("user"))
520537
.put("permissions", new JsonArray().add("read").add("write").add("execute"));
521538

0 commit comments

Comments
 (0)