From 7a34c2a448ef18f0bc04977db3e9065bfdd2a07d Mon Sep 17 00:00:00 2001 From: Jacek Kowalski <Jacek@jacekk.info> Date: Fri, 24 Nov 2023 15:36:27 +0000 Subject: [PATCH] LogoutEndpoint: move client field to local var in checkClient() --- src/main/java/org/keycloak/protocol/cas/endpoints/ServiceValidateEndpoint.java | 36 +++++++++--------------------------- 1 files changed, 9 insertions(+), 27 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 f060435..c0c1e2b 100644 --- a/src/main/java/org/keycloak/protocol/cas/endpoints/ServiceValidateEndpoint.java +++ b/src/main/java/org/keycloak/protocol/cas/endpoints/ServiceValidateEndpoint.java @@ -1,45 +1,27 @@ package org.keycloak.protocol.cas.endpoints; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; import org.keycloak.events.EventBuilder; -import org.keycloak.models.*; -import org.keycloak.protocol.ProtocolMapper; -import org.keycloak.protocol.cas.mappers.CASAttributeMapper; +import org.keycloak.models.KeycloakSession; +import org.keycloak.models.RealmModel; +import org.keycloak.models.UserSessionModel; 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.managers.ClientSessionCode; -import org.keycloak.services.util.DefaultClientSessionContext; -import javax.ws.rs.core.*; -import java.util.HashMap; import java.util.Map; -import java.util.Set; public class ServiceValidateEndpoint extends ValidateEndpoint { - @Context - private Request restRequest; - - public ServiceValidateEndpoint(RealmModel realm, EventBuilder event) { - super(realm, event); + public ServiceValidateEndpoint(KeycloakSession session, RealmModel realm, EventBuilder event) { + super(session, realm, event); } @Override protected Response successResponse() { UserSessionModel userSession = clientSession.getUserSession(); - // CAS protocol does not support scopes, so pass null scopeParam - ClientSessionContext clientSessionCtx = DefaultClientSessionContext.fromClientSessionAndScopeParameter(clientSession, null); - - Set<ProtocolMapperModel> mappings = clientSessionCtx.getProtocolMappers(); - 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); - } - } - + Map<String, Object> attributes = getUserAttributes(); CASServiceResponse serviceResponse = ServiceResponseHelper.createSuccess(userSession.getUser().getUsername(), attributes); return prepare(Response.Status.OK, serviceResponse); } @@ -51,7 +33,7 @@ } private Response prepare(Response.Status status, CASServiceResponse serviceResponse) { - MediaType responseMediaType = new ContentTypeHelper(request, restRequest, session.getContext().getUri()).selectResponseType(); + MediaType responseMediaType = new ContentTypeHelper(session.getContext().getUri()).selectResponseType(); return ServiceResponseHelper.createResponse(status, responseMediaType, serviceResponse); } } -- Gitblit v1.9.1