@Override public AccessToken expiration(int expiration) { return (AccessToken) super.expiration(expiration); }
@Override public AccessToken id(String id) { return (AccessToken) super.id(id); }
@Override public AccessToken issuedAt(int issuedAt) { return (AccessToken) super.issuedAt(issuedAt); }
public void authenticatedRequest(KeycloakUndertowAccount account, HttpServerExchange exchange) throws Exception { if (account != null) { IDToken idToken = account.getKeycloakSecurityContext().getToken(); if (idToken == null) return; if (idToken.getSubject() != null) { exchange.getRequestHeaders().put(httpHeaderNames.get(KEYCLOAK_SUBJECT), idToken.getSubject()); } if (idToken.getPreferredUsername() != null) { exchange.getRequestHeaders().put(httpHeaderNames.get(KEYCLOAK_USERNAME), idToken.getPreferredUsername()); } if (idToken.getEmail() != null) { exchange.getRequestHeaders().put(httpHeaderNames.get(KEYCLOAK_EMAIL), idToken.getEmail()); } if (idToken.getName() != null) { exchange.getRequestHeaders().put(httpHeaderNames.get(KEYCLOAK_NAME), idToken.getName()); } if (sendAccessToken) { exchange.getRequestHeaders().put(httpHeaderNames.get(KEYCLOAK_ACCESS_TOKEN), account.getKeycloakSecurityContext().getTokenString()); } } next.handleRequest(exchange); } }
/** * Create a successful result. * * @param authentication valid credentials */ public AuthResults(Authentication authentication) { Object username = null; Object details = null; if (authentication.getDetails() instanceof SimpleKeycloakAccount) { details = (SimpleKeycloakAccount) authentication.getDetails(); assert ((SimpleKeycloakAccount) details).getPrincipal() instanceof KeycloakPrincipal; final KeycloakPrincipal principal = (KeycloakPrincipal) ((SimpleKeycloakAccount) details).getPrincipal(); username = principal.getName(); if (principal.getKeycloakSecurityContext().getIdToken() != null) { username = principal.getKeycloakSecurityContext().getIdToken().getPreferredUsername(); } } else { username = authentication.getPrincipal(); details = authentication.getDetails(); } this.authentication = new UsernamePasswordAuthenticationToken( username, authentication.getCredentials(), authentication.getAuthorities()); ((UsernamePasswordAuthenticationToken) this.authentication).setDetails(details); this.challenge = null; }
@Override public AccessToken issuer(String issuer) { return (AccessToken) super.issuer(issuer); }
@Override public AccessToken issuedFor(String issuedFor) { return (AccessToken)super.issuedFor(issuedFor); }
final Principal userPrincipal = httpRequest.getUserPrincipal(); if (userPrincipal instanceof KeycloakPrincipal) { KeycloakPrincipal<KeycloakSecurityContext> kp = (KeycloakPrincipal<KeycloakSecurityContext>) userPrincipal; IDToken token = kp.getKeycloakSecurityContext().getIdToken(); Map<String, Object> otherClaims = token.getOtherClaims(); if (otherClaims.containsKey("YOUR_CLAIM_KEY")) { yourClaim = String.valueOf(otherClaims.get("YOUR_CLAIM_KEY")); } } else { throw new RuntimeException(...); }