ESUserSessionDetails.java
package org.entrystore.rest.springboot.security;
import lombok.Getter;
import lombok.Setter;
import org.entrystore.User;
import org.entrystore.rest.springboot.model.auth.SessionInfo;
import org.springframework.security.core.userdetails.UserDetails;
@Getter
@Setter
public class ESUserSessionDetails extends org.springframework.security.core.userdetails.User {
private final User esUser;
// volatile: ReloadUserPropertiesFilter updates it on the registered principal, which /auth/tokens reads concurrently
private volatile SessionInfo sessionInfo;
public ESUserSessionDetails(UserDetails userDt, User esUser, SessionInfo sessionInfo) {
super(userDt.getUsername(), userDt.getPassword(), userDt.isEnabled(), userDt.isAccountNonExpired(),
userDt.isCredentialsNonExpired(), userDt.isAccountNonLocked(), userDt.getAuthorities());
this.esUser = esUser;
this.sessionInfo = sessionInfo;
}
}