79 event.event(EventType.INTROSPECT_TOKEN);
81 if (clientId != null) {
91 AccessToken token = null;
93 TokenVerifier<AccessToken> verifier = TokenVerifier.create(reviewRequest.getSpec().getToken(), AccessToken.class)
96 SignatureVerifierContext verifierContext =
session.
getProvider(SignatureProvider.class, verifier.getHeader().getAlgorithm().name()).verifier(verifier.getHeader().getKeyId());
97 verifier.verifierContext(verifierContext);
100 token = verifier.getToken();
101 }
catch (VerificationException e) {
102 error(401, Errors.INVALID_TOKEN,
"Token verification failure");
106 error(401, Errors.INVALID_TOKEN,
"Token verification failure");
109 OpenShiftTokenReviewResponseRepresentation response =
new OpenShiftTokenReviewResponseRepresentation();
110 response.getStatus().setAuthenticated(
true);
111 response.getStatus().setUser(
new OpenShiftTokenReviewResponseRepresentation.User());
113 OpenShiftTokenReviewResponseRepresentation.User userRep = response.getStatus().getUser();
114 userRep.setUid(token.getSubject());
115 userRep.setUsername(token.getPreferredUsername());
117 if (token.getScope() != null && !token.getScope().isEmpty()) {
118 OpenShiftTokenReviewResponseRepresentation.Extra extra =
new OpenShiftTokenReviewResponseRepresentation.Extra();
119 extra.setScopes(token.getScope().split(
" "));
120 userRep.setExtra(extra);
123 if (token.getOtherClaims() != null && token.getOtherClaims().get(
"groups") != null) {
124 List<String> groups = (List<String>) token.getOtherClaims().get(
"groups");
125 userRep.setGroups(groups);
129 return Response.ok(response, MediaType.APPLICATION_JSON).build();
void setAttribute(String name, Object value)
void checkRealm()
Definition: OpenShiftTokenReviewEndpoint.java:138
KeycloakContext getContext()
void checkSsl()
Definition: OpenShiftTokenReviewEndpoint.java:132
boolean checkTokenValidForIntrospection(KeycloakSession session, RealmModel realm, AccessToken token)
Definition: TokenManager.java:215
TokenManager tokenManager
Definition: OpenShiftTokenReviewEndpoint.java:53
URI getBaseUri()
Definition: KeycloakUriInfo.java:79
void error(int statusCode, String error, String description)
Definition: OpenShiftTokenReviewEndpoint.java:160
KeycloakSession session
Definition: OpenShiftTokenReviewEndpoint.java:52
< T extends Provider > T getProvider(Class< T > clazz)
void authorizeClient()
Definition: OpenShiftTokenReviewEndpoint.java:144