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.CASLoginProtocol; import org.keycloak.services.ErrorResponseException; import org.keycloak.services.managers.ClientSessionCode; import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import java.util.Set; public class ServiceValidateEndpoint extends ValidateEndpoint { public ServiceValidateEndpoint(RealmModel realm, EventBuilder event) { super(realm, event); } @Override protected Response successResponse() { UserSessionModel userSession = clientSession.getUserSession(); Set mappings = new ClientSessionCode(session, realm, clientSession).getRequestedProtocolMappers(); KeycloakSessionFactory sessionFactory = session.getKeycloakSessionFactory(); for (ProtocolMapperModel mapping : mappings) { ProtocolMapper mapper = (ProtocolMapper) sessionFactory.getProviderFactory(ProtocolMapper.class, mapping.getProtocolMapper()); } return Response.ok() .header(HttpHeaders.CONTENT_TYPE, (jsonFormat() ? MediaType.APPLICATION_JSON_TYPE : MediaType.APPLICATION_XML_TYPE).withCharset("utf-8")) .entity("\n" + " \n" + " " + userSession.getUser().getUsername() + "\n" + " \n" + " \n" + " \n" + "") .build(); } @Override protected Response errorResponse(ErrorResponseException e) { return super.errorResponse(e); } private boolean jsonFormat() { return "json".equalsIgnoreCase(uriInfo.getQueryParameters().getFirst(CASLoginProtocol.FORMAT_PARAM)); } }