Browse Source

destroy() shuts down the taskScheduler

Issue gh-15735
pull/15875/head
Rob Winch 1 year ago
parent
commit
4f328c9503
  1. 10
      core/src/main/java/org/springframework/security/authentication/ott/JdbcOneTimeTokenService.java
  2. 3
      core/src/test/java/org/springframework/security/authentication/ott/JdbcOneTimeTokenServiceTests.java

10
core/src/main/java/org/springframework/security/authentication/ott/JdbcOneTimeTokenService.java

@ -30,6 +30,7 @@ import java.util.function.Function; @@ -30,6 +30,7 @@ import java.util.function.Function;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.jdbc.core.ArgumentPreparedStatementSetter;
import org.springframework.jdbc.core.JdbcOperations;
import org.springframework.jdbc.core.PreparedStatementSetter;
@ -55,7 +56,7 @@ import org.springframework.util.StringUtils; @@ -55,7 +56,7 @@ import org.springframework.util.StringUtils;
* @author Max Batischev
* @since 6.4
*/
public final class JdbcOneTimeTokenService implements OneTimeTokenService {
public final class JdbcOneTimeTokenService implements OneTimeTokenService, DisposableBean {
private final Log logger = LogFactory.getLog(getClass());
@ -187,6 +188,13 @@ public final class JdbcOneTimeTokenService implements OneTimeTokenService { @@ -187,6 +188,13 @@ public final class JdbcOneTimeTokenService implements OneTimeTokenService {
this.logger.debug("Cleaned up " + deletedCount + " expired tokens");
}
@Override
public void destroy() throws Exception {
if (this.taskScheduler != null) {
this.taskScheduler.shutdown();
}
}
/**
* Sets the {@link Clock} used when generating one-time token and checking token
* expiry.

3
core/src/test/java/org/springframework/security/authentication/ott/JdbcOneTimeTokenServiceTests.java

@ -68,8 +68,9 @@ public class JdbcOneTimeTokenServiceTests { @@ -68,8 +68,9 @@ public class JdbcOneTimeTokenServiceTests {
}
@AfterEach
public void tearDown() {
public void tearDown() throws Exception {
this.db.shutdown();
this.oneTimeTokenService.destroy();
}
private static EmbeddedDatabase createDb() {

Loading…
Cancel
Save