From 58268f88db70f9dc0bf55f68852d25402e4216be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Pfeuffer?= Date: Fri, 30 Nov 2018 17:19:59 +0100 Subject: [PATCH] Fix refresh strategy --- .../scm/security/PercentageJwtAccessTokenRefreshStrategy.java | 2 +- .../security/PercentageJwtAccessTokenRefreshStrategyTest.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/scm-webapp/src/main/java/sonia/scm/security/PercentageJwtAccessTokenRefreshStrategy.java b/scm-webapp/src/main/java/sonia/scm/security/PercentageJwtAccessTokenRefreshStrategy.java index 2d5c67c7b6..c78654c389 100644 --- a/scm-webapp/src/main/java/sonia/scm/security/PercentageJwtAccessTokenRefreshStrategy.java +++ b/scm-webapp/src/main/java/sonia/scm/security/PercentageJwtAccessTokenRefreshStrategy.java @@ -20,6 +20,6 @@ public class PercentageJwtAccessTokenRefreshStrategy implements JwtAccessTokenRe public boolean shouldBeRefreshed(JwtAccessToken oldToken) { long liveSpan = oldToken.getExpiration().getTime() - oldToken.getIssuedAt().getTime(); long age = clock.instant().toEpochMilli() - oldToken.getIssuedAt().getTime(); - return age/liveSpan > refreshPercentage; + return (float)age/liveSpan > refreshPercentage; } } diff --git a/scm-webapp/src/test/java/sonia/scm/security/PercentageJwtAccessTokenRefreshStrategyTest.java b/scm-webapp/src/test/java/sonia/scm/security/PercentageJwtAccessTokenRefreshStrategyTest.java index 2e1fa44a76..122c1b5381 100644 --- a/scm-webapp/src/test/java/sonia/scm/security/PercentageJwtAccessTokenRefreshStrategyTest.java +++ b/scm-webapp/src/test/java/sonia/scm/security/PercentageJwtAccessTokenRefreshStrategyTest.java @@ -47,6 +47,7 @@ public class PercentageJwtAccessTokenRefreshStrategyTest { when(creationClock.instant()).thenReturn(TOKEN_CREATION); tokenBuilder = new JwtAccessTokenBuilderFactory(keyGenerator, keyResolver, Collections.emptySet(), creationClock).create(); + tokenBuilder.expiresIn(1, HOURS); tokenBuilder.refreshableFor(1, HOURS); refreshStrategy = new PercentageJwtAccessTokenRefreshStrategy(refreshClock, 0.5F); @@ -61,6 +62,6 @@ public class PercentageJwtAccessTokenRefreshStrategyTest { @Test public void shouldRefreshWhenTokenIsOld() { when(refreshClock.instant()).thenReturn(TOKEN_CREATION.plus(31, MINUTES)); - assertThat(refreshStrategy.shouldBeRefreshed(tokenBuilder.build())).isFalse(); + assertThat(refreshStrategy.shouldBeRefreshed(tokenBuilder.build())).isTrue(); } }