From 18e56c9d4f1b2593ed148c40ab5db22d7faaa9fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20K=C3=B6rber?= Date: Sat, 29 Apr 2023 15:15:41 +0200 Subject: [PATCH] Add Session.purgeDirectoryCache() --- .../src/main/java/org/shredzone/acme4j/Session.java | 12 ++++++++++++ .../test/java/org/shredzone/acme4j/SessionTest.java | 7 +++++++ 2 files changed, 19 insertions(+) diff --git a/acme4j-client/src/main/java/org/shredzone/acme4j/Session.java b/acme4j-client/src/main/java/org/shredzone/acme4j/Session.java index b6a9b039..f7e065d4 100644 --- a/acme4j-client/src/main/java/org/shredzone/acme4j/Session.java +++ b/acme4j-client/src/main/java/org/shredzone/acme4j/Session.java @@ -311,6 +311,18 @@ public class Session { return resourceMap.get() != null; } + /** + * Purges the directory cache. Makes sure that a fresh copy of the directory will be + * read from the CA on the next time the directory is accessed. + * + * @since 3.0.0 + */ + public void purgeDirectoryCache() { + setDirectoryLastModified(null); + setDirectoryExpires(null); + resourceMap.set(null); + } + /** * Reads the provider's directory, then rebuild the resource map. The resource map * is unchanged if the {@link AcmeProvider} returns that the directory has not been diff --git a/acme4j-client/src/test/java/org/shredzone/acme4j/SessionTest.java b/acme4j-client/src/test/java/org/shredzone/acme4j/SessionTest.java index 88f2d568..048ec042 100644 --- a/acme4j-client/src/test/java/org/shredzone/acme4j/SessionTest.java +++ b/acme4j-client/src/test/java/org/shredzone/acme4j/SessionTest.java @@ -97,6 +97,13 @@ public class SessionTest { assertThat(session.getDirectoryLastModified()).isEqualTo(now); session.setDirectoryLastModified(null); assertThat(session.getDirectoryLastModified()).isNull(); + + session.setDirectoryExpires(now); + session.setDirectoryLastModified(now); + session.purgeDirectoryCache(); + assertThat(session.getDirectoryExpires()).isNull(); + assertThat(session.getDirectoryLastModified()).isNull(); + assertThat(session.hasDirectory()).isFalse(); } /**