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

Matthias Piepkorn
2017-01-29 352436410a73e70a8adffd8d5bfbd2bcdf97c139
commit | author | age
513246 1 package org.keycloak.protocol.cas.utils;
MP 2
352436 3 import org.keycloak.protocol.cas.representations.CASErrorCode;
513246 4 import org.keycloak.protocol.cas.representations.CasServiceResponse;
MP 5 import org.keycloak.protocol.cas.representations.CasServiceResponseAuthenticationFailure;
6 import org.keycloak.protocol.cas.representations.CasServiceResponseAuthenticationSuccess;
7
8 import javax.ws.rs.core.HttpHeaders;
9 import javax.ws.rs.core.MediaType;
10 import javax.ws.rs.core.Response;
11 import java.util.List;
12 import java.util.Map;
13
14 public final class ServiceResponseHelper {
15     private ServiceResponseHelper() {
16     }
17
18     public static CasServiceResponse createSuccess(String username, Map<String, Object> attributes) {
19         return createSuccess(username, attributes, null, null);
20     }
21
22     public static CasServiceResponse createSuccess(String username, Map<String, Object> attributes,
23                                                    String proxyGrantingTicket, List<String> proxies) {
24         CasServiceResponse response = new CasServiceResponse();
25         CasServiceResponseAuthenticationSuccess success = new CasServiceResponseAuthenticationSuccess();
26         success.setUser(username);
27         success.setProxies(proxies);
28         success.setProxyGrantingTicket(proxyGrantingTicket);
29         success.setAttributes(attributes);
30
31         response.setAuthenticationSuccess(success);
32
33         return response;
34     }
35
352436 36     public static CasServiceResponse createFailure(CASErrorCode errorCode, String errorDescription) {
513246 37         CasServiceResponse response = new CasServiceResponse();
MP 38         CasServiceResponseAuthenticationFailure failure = new CasServiceResponseAuthenticationFailure();
352436 39         failure.setCode(errorCode == null ? CASErrorCode.INTERNAL_ERROR.name() : errorCode.name());
513246 40         failure.setDescription(errorDescription);
MP 41         response.setAuthenticationFailure(failure);
42
43         return response;
44     }
45
46     public static Response createResponse(Response.Status status, MediaType mediaType, CasServiceResponse serviceResponse) {
47         Response.ResponseBuilder builder = Response.status(status)
48                 .header(HttpHeaders.CONTENT_TYPE, mediaType.withCharset("utf-8"));
49         if (MediaType.APPLICATION_JSON_TYPE.equals(mediaType)) {
50             return builder.entity(ServiceResponseMarshaller.marshalJson(serviceResponse)).build();
51         } else {
52             return builder.entity(ServiceResponseMarshaller.marshalXml(serviceResponse)).build();
53         }
54     }
55 }