feat: reduce time specificity on last login
This commit is contained in:
parent
bb9c6f3e36
commit
1b6c4dda93
2 changed files with 5 additions and 9 deletions
|
@ -37,6 +37,7 @@
|
|||
devshells.default = {
|
||||
packages = with pkgs; [
|
||||
maven
|
||||
java-language-server
|
||||
];
|
||||
};
|
||||
};
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue