mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-06-23 16:05:09 +00:00
Update AnonymusSessionService.java
This commit is contained in:
parent
d9755c9658
commit
fe378042f0
@ -1,9 +1,14 @@
|
|||||||
package stirling.software.SPDF.config.anonymus.session;
|
package stirling.software.SPDF.config.anonymus.session;
|
||||||
|
|
||||||
|
import java.time.Duration;
|
||||||
|
import java.time.Instant;
|
||||||
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@ -15,15 +20,28 @@ public class AnonymusSessionService {
|
|||||||
|
|
||||||
@Autowired private AnonymusSessionRegistry sessionRegistry;
|
@Autowired private AnonymusSessionRegistry sessionRegistry;
|
||||||
|
|
||||||
|
@Value("${server.servlet.session.timeout:120s}") // TODO: Change to 30m
|
||||||
|
private Duration defaultMaxInactiveInterval;
|
||||||
|
|
||||||
@Scheduled(cron = "0 0/1 * * * ?")
|
@Scheduled(cron = "0 0/1 * * * ?")
|
||||||
public void expireSessions() {
|
public void expireSessions() {
|
||||||
|
Instant now = Instant.now();
|
||||||
List<AnonymusSessionInfo> allNonExpiredSessions =
|
List<AnonymusSessionInfo> allNonExpiredSessions =
|
||||||
new ArrayList<>(sessionRegistry.getAllNonExpiredSessions());
|
new ArrayList<>(sessionRegistry.getAllNonExpiredSessions());
|
||||||
if (allNonExpiredSessions.isEmpty()) {
|
for (AnonymusSessionInfo sessionInformation : allNonExpiredSessions) {
|
||||||
log.info("Keine nicht abgelaufenen Sessions gefunden.");
|
Date lastRequest = sessionInformation.getLastRequest();
|
||||||
return;
|
int maxInactiveInterval = (int) defaultMaxInactiveInterval.getSeconds();
|
||||||
} else {
|
Instant expirationTime =
|
||||||
log.info("Es gibt {} nicht abgelaufene Sessions", allNonExpiredSessions.size());
|
lastRequest.toInstant().plus(maxInactiveInterval, ChronoUnit.SECONDS);
|
||||||
|
|
||||||
|
if (now.isAfter(expirationTime)) {
|
||||||
|
log.info(
|
||||||
|
"SessionID: {} expiration time: {} Current time: {}",
|
||||||
|
sessionInformation.getSession().getId(),
|
||||||
|
expirationTime,
|
||||||
|
now);
|
||||||
|
sessionInformation.setExpired(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user