Skip to content

Commit fa7a4a9

Browse files
authored
Fixed caching behavior in JwtTokenResolverImpl, no cache for errors (#90)
* Fixed caching behavior in JwtTokenResolverImpl, no cache for errors * Fixed tests (updated testcontainers)
1 parent 12fe5a8 commit fa7a4a9

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

pom.xml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,9 @@
4747
<hamcrest.version>1.3</hamcrest.version>
4848
<junit-jupiter.version>5.4.2</junit-jupiter.version>
4949
<vault-java-driver.version>5.0.0</vault-java-driver.version>
50-
<testcontainers.version>1.14.0</testcontainers.version>
50+
<testcontainers.version>1.15.1</testcontainers.version>
51+
<!-- TODO: remove explicit version of `jna` once testcontainers fixes dependencies conflict -->
52+
<jna.version>5.5.0</jna.version>
5153
</properties>
5254

5355
<dependencyManagement>
@@ -90,6 +92,13 @@
9092
<type>pom</type>
9193
<scope>import</scope>
9294
</dependency>
95+
<!-- TestContainers -->
96+
<dependency>
97+
<groupId>net.java.dev.jna</groupId>
98+
<artifactId>jna</artifactId>
99+
<version>${jna.version}</version>
100+
<scope>test</scope>
101+
</dependency>
93102
</dependencies>
94103
</dependencyManagement>
95104

tokens/src/main/java/io/scalecube/security/tokens/jwt/JwtTokenResolverImpl.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,10 @@ private Mono<Key> findKey(String kid, AtomicReference<Mono<Key>> computedValueHo
102102
(kid1) -> {
103103
Mono<Key> result =
104104
computedValueHolder.updateAndGet(
105-
mono -> Mono.defer(() -> keyProvider.findKey(kid)).cache());
105+
mono ->
106+
Mono.defer(() -> keyProvider.findKey(kid1))
107+
.cache()
108+
.doOnError(ex -> keyResolutions.remove(kid1)));
106109
scheduleCleanup(kid, computedValueHolder);
107110
return result;
108111
});

0 commit comments

Comments
 (0)