diff --git a/pom.xml b/pom.xml index 543c1772..286b332d 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ 1.6.2 1.10.3-jdk8 3.8.0 - 6.0.0-M4 + 6.0.0-SNAPSHOT 2022.0.0-M4 5.4.5 2020.0.13 diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/LifecycleAwareSessionManagerSupport.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/LifecycleAwareSessionManagerSupport.java index d4efbdeb..6feb9b03 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/LifecycleAwareSessionManagerSupport.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/LifecycleAwareSessionManagerSupport.java @@ -16,6 +16,7 @@ package org.springframework.vault.authentication; import java.time.Duration; +import java.time.Instant; import java.util.Date; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; @@ -195,6 +196,14 @@ public abstract class LifecycleAwareSessionManagerSupport extends Authentication return null; } + @Override + public Instant nextExecution(TriggerContext triggerContext) { + if (this.fired.compareAndSet(false, true)) { + return this.nextExecutionTime.toInstant(); + } + + return null; + } } /** diff --git a/spring-vault-core/src/main/java/org/springframework/vault/core/lease/SecretLeaseContainer.java b/spring-vault-core/src/main/java/org/springframework/vault/core/lease/SecretLeaseContainer.java index 1552a178..30ef3534 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/core/lease/SecretLeaseContainer.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/core/lease/SecretLeaseContainer.java @@ -16,6 +16,7 @@ package org.springframework.vault.core.lease; import java.time.Duration; +import java.time.Instant; import java.util.Date; import java.util.HashMap; import java.util.HashSet; @@ -948,6 +949,15 @@ public class SecretLeaseContainer extends SecretLeaseEventPublisher implements I return null; } + @Override + public Instant nextExecution(TriggerContext triggerContext) { + if (UPDATER.compareAndSet(this, STATUS_ARMED, STATUS_FIRED)) { + return Instant.ofEpochMilli(System.currentTimeMillis() + TimeUnit.SECONDS.toMillis(this.seconds)); + } + + return null; + } + } /**