mirror of https://github.com/jacekkow/keycloak-protocol-cas

3 files modified
68 ■■■■ changed files
pom.xml 19 ●●●● patch | view | raw | blame | history
src/main/java/org/keycloak/protocol/cas/CASLoginProtocolService.java 21 ●●●● patch | view | raw | blame | history
src/test/java/org/keycloak/protocol/cas/ContentTypeHelperTest.java 28 ●●●● patch | view | raw | blame | history
pom.xml
@@ -22,20 +22,20 @@
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-protocol-cas</artifactId>
    <version>23.0.7</version>
    <version>24.0.0</version>
    <name>Keycloak CAS Protocol</name>
    <description />
    <properties>
        <keycloak.version>${project.version}</keycloak.version>
        <apache.httpcomponents.version>4.5.14</apache.httpcomponents.version>
        <jboss.logging.version>3.5.1.Final</jboss.logging.version>
        <jboss.logging.version>3.5.3.Final</jboss.logging.version>
        <jboss.logging.tools.version>2.2.1.Final</jboss.logging.tools.version>
        <junit.version>4.13.2</junit.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.release>17</maven.compiler.release>
        <project.build.outputTimestamp>1708678028</project.build.outputTimestamp>
        <project.build.outputTimestamp>1709547948</project.build.outputTimestamp>
    </properties>
    <dependencies>
@@ -95,6 +95,7 @@
            <version>${keycloak.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
@@ -113,6 +114,18 @@
            <version>2.9.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.core</groupId>
            <artifactId>jersey-common</artifactId>
            <version>3.1.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>5.11.0</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
src/main/java/org/keycloak/protocol/cas/CASLoginProtocolService.java
@@ -3,7 +3,6 @@
import jakarta.ws.rs.Path;
import jakarta.ws.rs.core.Response;
import jakarta.ws.rs.core.UriBuilder;
import org.jboss.resteasy.spi.ResteasyProviderFactory;
import org.keycloak.events.EventBuilder;
import org.keycloak.models.KeycloakSession;
import org.keycloak.models.RealmModel;
@@ -27,37 +26,27 @@
    @Path("login")
    public Object login() {
        AuthorizationEndpoint endpoint = new AuthorizationEndpoint(session, event);
        ResteasyProviderFactory.getInstance().injectProperties(endpoint);
        return endpoint;
        return new AuthorizationEndpoint(session, event);
    }
    @Path("logout")
    public Object logout() {
        LogoutEndpoint endpoint = new LogoutEndpoint(session, realm);
        ResteasyProviderFactory.getInstance().injectProperties(endpoint);
        return endpoint;
        return new LogoutEndpoint(session, realm);
    }
    @Path("validate")
    public Object validate() {
        ValidateEndpoint endpoint = new ValidateEndpoint(session, realm, event);
        ResteasyProviderFactory.getInstance().injectProperties(endpoint);
        return endpoint;
        return new ValidateEndpoint(session, realm, event);
    }
    @Path("samlValidate")
    public Object validateSaml11() {
        SamlValidateEndpoint endpoint = new SamlValidateEndpoint(session, realm, event);
        ResteasyProviderFactory.getInstance().injectProperties(endpoint);
        return endpoint;
        return new SamlValidateEndpoint(session, realm, event);
    }
    @Path("serviceValidate")
    public Object serviceValidate() {
        ServiceValidateEndpoint endpoint = new ServiceValidateEndpoint(session, realm, event);
        ResteasyProviderFactory.getInstance().injectProperties(endpoint);
        return endpoint;
        return new ServiceValidateEndpoint(session, realm, event);
    }
    @Path("proxyValidate")
src/test/java/org/keycloak/protocol/cas/ContentTypeHelperTest.java
@@ -1,27 +1,27 @@
package org.keycloak.protocol.cas;
import jakarta.ws.rs.core.HttpHeaders;
import jakarta.ws.rs.core.MediaType;
import org.jboss.resteasy.mock.MockHttpRequest;
import org.jboss.resteasy.mock.MockHttpResponse;
import org.jboss.resteasy.specimpl.RequestImpl;
import jakarta.ws.rs.core.*;
import org.junit.Test;
import org.keycloak.protocol.cas.utils.ContentTypeHelper;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.*;
public class ContentTypeHelperTest {
    @Test
    public void test() throws Exception {
        assertEquals(MediaType.APPLICATION_XML_TYPE, get("http://example.com/").selectResponseType());
        assertEquals(MediaType.APPLICATION_JSON_TYPE, get("http://example.com/?format=json").selectResponseType());
        assertEquals(MediaType.APPLICATION_XML_TYPE, get("http://example.com/?format=xml").selectResponseType());
        assertEquals(MediaType.APPLICATION_JSON_TYPE, get("http://example.com/?format=JSON").selectResponseType());
        assertEquals(MediaType.APPLICATION_XML_TYPE, get("http://example.com/?format=XML").selectResponseType());
    public void test() {
        assertEquals(MediaType.APPLICATION_XML_TYPE, get("").selectResponseType());
        assertEquals(MediaType.APPLICATION_JSON_TYPE, get("json").selectResponseType());
        assertEquals(MediaType.APPLICATION_XML_TYPE, get("xml").selectResponseType());
        assertEquals(MediaType.APPLICATION_JSON_TYPE, get("JSON").selectResponseType());
        assertEquals(MediaType.APPLICATION_XML_TYPE, get("XML").selectResponseType());
    }
    private ContentTypeHelper get(String uri) throws Exception {
        MockHttpRequest req = MockHttpRequest.get(uri);
        return new ContentTypeHelper(req.getUri());
    private ContentTypeHelper get(String format) {
        MultivaluedHashMap<String,String> queryParams = mock(MultivaluedHashMap.class);
        when(queryParams.getFirst(CASLoginProtocol.FORMAT_PARAM)).thenReturn(format);
        UriInfo uriInfo = mock(UriInfo.class);
        when(uriInfo.getQueryParameters()).thenReturn(queryParams);
        return new ContentTypeHelper(uriInfo);
    }
}