package org.keycloak.protocol.cas;
|
|
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.services.resources.RealmsResource;
|
|
import javax.ws.rs.Path;
|
import javax.ws.rs.core.*;
|
|
public class CASLoginProtocolService {
|
private RealmModel realm;
|
private EventBuilder event;
|
|
@Context
|
private KeycloakSession session;
|
|
@Context
|
private HttpHeaders headers;
|
|
@Context
|
private HttpRequest request;
|
|
public CASLoginProtocolService(RealmModel realm, EventBuilder event) {
|
this.realm = realm;
|
this.event = event;
|
}
|
|
public static UriBuilder serviceBaseUrl(UriBuilder baseUriBuilder) {
|
return baseUriBuilder.path(RealmsResource.class).path("{realm}/protocol/" + CASLoginProtocol.LOGIN_PROTOCOL);
|
}
|
|
@Path("login")
|
public Object login() {
|
AuthorizationEndpoint endpoint = new AuthorizationEndpoint(realm, event);
|
ResteasyProviderFactory.getInstance().injectProperties(endpoint);
|
return endpoint;
|
}
|
|
@Path("logout")
|
public Object logout() {
|
LogoutEndpoint endpoint = new LogoutEndpoint(realm, event);
|
ResteasyProviderFactory.getInstance().injectProperties(endpoint);
|
return endpoint;
|
}
|
|
@Path("validate")
|
public Object validate() {
|
ValidateEndpoint endpoint = new ValidateEndpoint(realm, event);
|
ResteasyProviderFactory.getInstance().injectProperties(endpoint);
|
return endpoint;
|
}
|
|
@Path("serviceValidate")
|
public Object serviceValidate() {
|
ServiceValidateEndpoint endpoint = new ServiceValidateEndpoint(realm, event);
|
ResteasyProviderFactory.getInstance().injectProperties(endpoint);
|
return endpoint;
|
}
|
|
@Path("proxyValidate")
|
public Object proxyValidate() {
|
//TODO implement
|
return serviceValidate();
|
}
|
|
@Path("proxy")
|
public Object proxy() {
|
return Response.serverError().entity("Not implemented").build();
|
}
|
|
@Path("p3/serviceValidate")
|
public Object p3ServiceValidate() {
|
return serviceValidate();
|
}
|
|
@Path("p3/proxyValidate")
|
public Object p3ProxyValidate() {
|
return proxyValidate();
|
}
|
}
|