feat: reduce time specificity on last login

This commit is contained in:
b12f 2025-01-31 23:53:33 +01:00
parent bb9c6f3e36
commit 1b6c4dda93
Signed by: b12f
GPG key ID: 729956E1124F8F26
2 changed files with 5 additions and 9 deletions

View file

@ -37,6 +37,7 @@
devshells.default = {
packages = with pkgs; [
maven
java-language-server
];
};
};

View file

@ -11,6 +11,8 @@ import org.keycloak.models.RealmProvider;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.Instant;
import java.time.temporal.ChronoUnit;
public class LastLoginEventListenerProvider implements EventListenerProvider {
@ -37,18 +39,11 @@ public class LastLoginEventListenerProvider implements EventListenerProvider {
}
log.info("Updating last login status for user: " + user.getUsername());
var userAttrs = user.getAttributes();
if (userAttrs.containsKey("last-login")) {
var userLastLogin = userAttrs.get("last-login");
if (userLastLogin != null && !userLastLogin.isEmpty()) {
user.setSingleAttribute("prior-login", userLastLogin.get(0));
}
}
// Use current server time for login event
var loginTime = ZonedDateTime.now(ZoneOffset.UTC);
var loginTimeS = DateTimeFormatter.ISO_DATE_TIME.format(loginTime);
user.setSingleAttribute("last-login", loginTimeS);
var loginDate = Instant.parse(loginTimeS).truncatedTo(ChronoUnit.DAYS).toString();
user.setSingleAttribute("last-login", loginDate);
}
@Override