From 03cd9920aa38d4a14ad342e5f4af9729317962a8 Mon Sep 17 00:00:00 2001 From: Rob Winch Date: Fri, 8 Jul 2022 12:29:09 -0500 Subject: [PATCH] DelegatingSecurityContextTaskScheduler implements new Methods Closes gh-11474 --- ...elegatingSecurityContextTaskScheduler.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/core/src/main/java/org/springframework/security/scheduling/DelegatingSecurityContextTaskScheduler.java b/core/src/main/java/org/springframework/security/scheduling/DelegatingSecurityContextTaskScheduler.java index 839e41812f..fbc64a7377 100644 --- a/core/src/main/java/org/springframework/security/scheduling/DelegatingSecurityContextTaskScheduler.java +++ b/core/src/main/java/org/springframework/security/scheduling/DelegatingSecurityContextTaskScheduler.java @@ -16,6 +16,9 @@ package org.springframework.security.scheduling; +import java.time.Clock; +import java.time.Duration; +import java.time.Instant; import java.util.Date; import java.util.concurrent.ScheduledFuture; @@ -96,6 +99,35 @@ public class DelegatingSecurityContextTaskScheduler implements TaskScheduler { return this.delegate.scheduleWithFixedDelay(wrap(task), delay); } + @Override + public ScheduledFuture schedule(Runnable task, Instant startTime) { + return delegate.schedule(wrap(task), startTime); + } + + @Override + public ScheduledFuture scheduleAtFixedRate(Runnable task, Instant startTime, Duration period) { + return delegate.scheduleAtFixedRate(wrap(task), startTime, period); + } + + @Override + public ScheduledFuture scheduleAtFixedRate(Runnable task, Duration period) { + return delegate.scheduleAtFixedRate(wrap(task), period); + } + + @Override + public ScheduledFuture scheduleWithFixedDelay(Runnable task, Instant startTime, Duration delay) { + return delegate.scheduleWithFixedDelay(wrap(task), startTime, delay); + } + + @Override + public ScheduledFuture scheduleWithFixedDelay(Runnable task, Duration delay) { + return delegate.scheduleWithFixedDelay(wrap(task), delay); + } + @Override + public Clock getClock() { + return this.delegate.getClock(); + } + private Runnable wrap(Runnable delegate) { return DelegatingSecurityContextRunnable.create(delegate, this.securityContext); }