60 lines
1.5 KiB
Java
60 lines
1.5 KiB
Java
package mops.gruppen2.domain.model.group;
|
|
|
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
|
import lombok.AccessLevel;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.EqualsAndHashCode;
|
|
import lombok.Getter;
|
|
import lombok.Value;
|
|
import lombok.extern.log4j.Log4j2;
|
|
import org.keycloak.KeycloakPrincipal;
|
|
import org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken;
|
|
|
|
@Log4j2
|
|
@Value
|
|
@AllArgsConstructor
|
|
public class User {
|
|
|
|
@EqualsAndHashCode.Include
|
|
@Getter(AccessLevel.NONE)
|
|
@JsonProperty("id")
|
|
String userid;
|
|
|
|
@JsonProperty("givenname")
|
|
String givenname;
|
|
|
|
@JsonProperty("familyname")
|
|
String familyname;
|
|
|
|
@JsonProperty("mail")
|
|
String email;
|
|
|
|
public User(KeycloakAuthenticationToken token) {
|
|
KeycloakPrincipal principal = (KeycloakPrincipal) token.getPrincipal();
|
|
userid = principal.getName();
|
|
givenname = principal.getKeycloakSecurityContext().getIdToken().getGivenName();
|
|
familyname = principal.getKeycloakSecurityContext().getIdToken().getFamilyName();
|
|
email = principal.getKeycloakSecurityContext().getIdToken().getEmail();
|
|
}
|
|
|
|
/**
|
|
* User identifizieren sich über die Id, mehr wird also manchmal nicht benötigt.
|
|
*
|
|
* @param userid Die User Id
|
|
*/
|
|
public User(String userid) {
|
|
this.userid = userid;
|
|
givenname = "";
|
|
familyname = "";
|
|
email = "";
|
|
}
|
|
|
|
public String getId() {
|
|
return userid;
|
|
}
|
|
|
|
public String format() {
|
|
return givenname + " " + familyname;
|
|
}
|
|
}
|