From 81877a6524d8721ec30debb771e050886c37c861 Mon Sep 17 00:00:00 2001 From: Jacek Kowalski <Jacek@jacekk.info> Date: Fri, 24 Nov 2023 12:17:22 +0000 Subject: [PATCH] ContextTypeHelper: do account for the "Accept" header (per CAS specs) --- src/main/java/org/keycloak/protocol/cas/CASLoginProtocolService.java | 44 ++++++++++++++++++++++---------------------- 1 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/main/java/org/keycloak/protocol/cas/CASLoginProtocolService.java b/src/main/java/org/keycloak/protocol/cas/CASLoginProtocolService.java index 7db732f..e8cbb39 100644 --- a/src/main/java/org/keycloak/protocol/cas/CASLoginProtocolService.java +++ b/src/main/java/org/keycloak/protocol/cas/CASLoginProtocolService.java @@ -1,31 +1,22 @@ package org.keycloak.protocol.cas; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.core.Context; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriBuilder; import org.jboss.resteasy.spi.HttpRequest; import org.jboss.resteasy.spi.ResteasyProviderFactory; import org.keycloak.events.EventBuilder; import org.keycloak.models.KeycloakSession; import org.keycloak.models.RealmModel; -import org.keycloak.protocol.cas.endpoints.AuthorizationEndpoint; -import org.keycloak.protocol.cas.endpoints.LogoutEndpoint; -import org.keycloak.protocol.cas.endpoints.ServiceValidateEndpoint; -import org.keycloak.protocol.cas.endpoints.ValidateEndpoint; +import org.keycloak.protocol.cas.endpoints.*; import org.keycloak.services.resources.RealmsResource; -import javax.ws.rs.Path; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.UriBuilder; -import javax.ws.rs.core.UriInfo; - public class CASLoginProtocolService { + private KeycloakSession session; private RealmModel realm; private EventBuilder event; - - @Context - private UriInfo uriInfo; - - @Context - private KeycloakSession session; @Context private HttpHeaders headers; @@ -33,8 +24,9 @@ @Context private HttpRequest request; - public CASLoginProtocolService(RealmModel realm, EventBuilder event) { - this.realm = realm; + public CASLoginProtocolService(KeycloakSession session, EventBuilder event) { + this.session = session; + this.realm = session.getContext().getRealm(); this.event = event; } @@ -44,14 +36,14 @@ @Path("login") public Object login() { - AuthorizationEndpoint endpoint = new AuthorizationEndpoint(realm, event); + AuthorizationEndpoint endpoint = new AuthorizationEndpoint(session, event); ResteasyProviderFactory.getInstance().injectProperties(endpoint); return endpoint; } @Path("logout") public Object logout() { - LogoutEndpoint endpoint = new LogoutEndpoint(realm, event); + LogoutEndpoint endpoint = new LogoutEndpoint(realm); ResteasyProviderFactory.getInstance().injectProperties(endpoint); return endpoint; } @@ -59,6 +51,13 @@ @Path("validate") public Object validate() { ValidateEndpoint endpoint = new ValidateEndpoint(realm, event); + ResteasyProviderFactory.getInstance().injectProperties(endpoint); + return endpoint; + } + + @Path("samlValidate") + public Object validateSaml11() { + SamlValidateEndpoint endpoint = new SamlValidateEndpoint(realm, event); ResteasyProviderFactory.getInstance().injectProperties(endpoint); return endpoint; } @@ -72,12 +71,13 @@ @Path("proxyValidate") public Object proxyValidate() { - return null; + //TODO implement + return serviceValidate(); } @Path("proxy") public Object proxy() { - return null; + return Response.serverError().entity("Not implemented").build(); } @Path("p3/serviceValidate") -- Gitblit v1.9.1