31 lines
1019 B
Java
31 lines
1019 B
Java
package mops.gruppen2.service;
|
|
|
|
import mops.gruppen2.security.Account;
|
|
import org.keycloak.KeycloakPrincipal;
|
|
import org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
@Service
|
|
public final class KeyCloakService {
|
|
|
|
private KeyCloakService() {}
|
|
|
|
/**
|
|
* Creates an Account.
|
|
*
|
|
* @param token Ein toller token
|
|
*
|
|
* @return Account with current userdata
|
|
*/
|
|
public static Account createAccountFromPrincipal(KeycloakAuthenticationToken token) {
|
|
KeycloakPrincipal principal = (KeycloakPrincipal) token.getPrincipal();
|
|
return new Account(
|
|
principal.getName(),
|
|
principal.getKeycloakSecurityContext().getIdToken().getEmail(),
|
|
null,
|
|
principal.getKeycloakSecurityContext().getIdToken().getGivenName(),
|
|
principal.getKeycloakSecurityContext().getIdToken().getFamilyName(),
|
|
token.getAccount().getRoles());
|
|
}
|
|
}
|