From a20ec10c84d4380dae08c75fbbf52b691c105f5b Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 19 Apr 2023 08:47:27 +0000 Subject: [PATCH] Update to Keycloak 21.1.0 --- src/main/java/org/keycloak/protocol/cas/endpoints/ServiceValidateEndpoint.java | 38 ++++++++++---------------------------- 1 files changed, 10 insertions(+), 28 deletions(-) diff --git a/src/main/java/org/keycloak/protocol/cas/endpoints/ServiceValidateEndpoint.java b/src/main/java/org/keycloak/protocol/cas/endpoints/ServiceValidateEndpoint.java index b110d96..10a86c4 100644 --- a/src/main/java/org/keycloak/protocol/cas/endpoints/ServiceValidateEndpoint.java +++ b/src/main/java/org/keycloak/protocol/cas/endpoints/ServiceValidateEndpoint.java @@ -1,22 +1,14 @@ package org.keycloak.protocol.cas.endpoints; import org.keycloak.events.EventBuilder; -import org.keycloak.models.KeycloakSessionFactory; -import org.keycloak.models.ProtocolMapperModel; -import org.keycloak.models.RealmModel; -import org.keycloak.models.UserSessionModel; -import org.keycloak.protocol.ProtocolMapper; -import org.keycloak.protocol.cas.mappers.CASAttributeMapper; -import org.keycloak.protocol.cas.representations.CasServiceResponse; +import org.keycloak.models.*; +import org.keycloak.protocol.cas.representations.CASServiceResponse; +import org.keycloak.protocol.cas.utils.CASValidationException; import org.keycloak.protocol.cas.utils.ContentTypeHelper; import org.keycloak.protocol.cas.utils.ServiceResponseHelper; -import org.keycloak.services.ErrorResponseException; -import org.keycloak.services.managers.ClientSessionCode; import javax.ws.rs.core.*; -import java.util.HashMap; import java.util.Map; -import java.util.Set; public class ServiceValidateEndpoint extends ValidateEndpoint { @Context @@ -29,29 +21,19 @@ @Override protected Response successResponse() { UserSessionModel userSession = clientSession.getUserSession(); - - Set<ProtocolMapperModel> mappings = new ClientSessionCode(session, realm, clientSession).getRequestedProtocolMappers(); - KeycloakSessionFactory sessionFactory = session.getKeycloakSessionFactory(); - Map<String, Object> attributes = new HashMap<>(); - for (ProtocolMapperModel mapping : mappings) { - ProtocolMapper mapper = (ProtocolMapper) sessionFactory.getProviderFactory(ProtocolMapper.class, mapping.getProtocolMapper()); - if (mapper instanceof CASAttributeMapper) { - ((CASAttributeMapper) mapper).setAttribute(attributes, mapping, userSession); - } - } - - CasServiceResponse serviceResponse = ServiceResponseHelper.createSuccess(userSession.getUser().getUsername(), attributes); + Map<String, Object> attributes = getUserAttributes(); + CASServiceResponse serviceResponse = ServiceResponseHelper.createSuccess(userSession.getUser().getUsername(), attributes); return prepare(Response.Status.OK, serviceResponse); } @Override - protected Response errorResponse(ErrorResponseException e) { - CasServiceResponse serviceResponse = ServiceResponseHelper.createFailure("CODE", "Description"); - return prepare(Response.Status.FORBIDDEN, serviceResponse); + protected Response errorResponse(CASValidationException e) { + CASServiceResponse serviceResponse = ServiceResponseHelper.createFailure(e.getError(), e.getErrorDescription()); + return prepare(e.getStatus(), serviceResponse); } - private Response prepare(Response.Status status, CasServiceResponse serviceResponse) { - MediaType responseMediaType = new ContentTypeHelper(request, restRequest, uriInfo).selectResponseType(); + private Response prepare(Response.Status status, CASServiceResponse serviceResponse) { + MediaType responseMediaType = new ContentTypeHelper(request, restRequest, session.getContext().getUri()).selectResponseType(); return ServiceResponseHelper.createResponse(status, responseMediaType, serviceResponse); } } -- Gitblit v1.9.1