96         return new SamlProtocol() {
    99             protected Response buildAuthenticatedResponse(AuthenticatedClientSessionModel clientSession, String redirectUri, Document samlDocument, JaxrsSAML2BindingBuilder bindingBuilder) 
throws ConfigurationException, ProcessingException, IOException {
   100                 Document document = bindingBuilder.postBinding(samlDocument).getDocument();
   103                     Soap.SoapMessageBuilder messageBuilder = Soap.createMessage()
   108                     createEcpResponseHeader(redirectUri, messageBuilder);
   109                     createRequestAuthenticatedHeader(clientSession, messageBuilder);
   111                     messageBuilder.addToBody(document);
   113                     return messageBuilder.build();
   114                 } 
catch (Exception e) {
   115                     throw new RuntimeException(
"Error while creating SAML response.", e);
   119             private void createRequestAuthenticatedHeader(AuthenticatedClientSessionModel clientSession, Soap.SoapMessageBuilder messageBuilder) {
   120                 ClientModel client = clientSession.getClient();
   122                 if (
"true".equals(client.getAttribute(SamlConfigAttributes.SAML_CLIENT_SIGNATURE_ATTRIBUTE))) {
   123                     SOAPHeaderElement ecpRequestAuthenticated = messageBuilder.addHeader(JBossSAMLConstants.REQUEST_AUTHENTICATED.get(), 
NS_PREFIX_PROFILE_ECP);
   125                     ecpRequestAuthenticated.setMustUnderstand(
true);
   126                     ecpRequestAuthenticated.setActor(
"http://schemas.xmlsoap.org/soap/actor/next");
   130             private void createEcpResponseHeader(String redirectUri, Soap.SoapMessageBuilder messageBuilder) 
throws SOAPException {
   131                 SOAPHeaderElement ecpResponseHeader = messageBuilder.addHeader(JBossSAMLConstants.RESPONSE__ECP.get(), 
NS_PREFIX_PROFILE_ECP);
   133                 ecpResponseHeader.setMustUnderstand(
true);
   134                 ecpResponseHeader.setActor(
"http://schemas.xmlsoap.org/soap/actor/next");
   135                 ecpResponseHeader.addAttribute(messageBuilder.createName(JBossSAMLConstants.ASSERTION_CONSUMER_SERVICE_URL.get()), redirectUri);
   139             protected Response buildErrorResponse(
boolean isPostBinding, String uri, JaxrsSAML2BindingBuilder binding, Document document) 
throws ConfigurationException, ProcessingException, IOException {
   140                 return Soap.createMessage().addToBody(document).build();
   144             protected Response buildLogoutResponse(UserSessionModel userSession, String logoutBindingUri, SAML2LogoutResponseBuilder builder, JaxrsSAML2BindingBuilder binding) 
throws ConfigurationException, ProcessingException, IOException {
   145                 return Soap.createFault().reason(
"Logout not supported.").build();
 static final String NS_PREFIX_SAML_ASSERTION
Definition: SamlEcpProfileService.java:56
 
static final String NS_PREFIX_SAML_PROTOCOL
Definition: SamlEcpProfileService.java:55
 
HttpHeaders headers
Definition: AuthorizationEndpointBase.java:65
 
KeycloakSession session
Definition: AuthorizationEndpointBase.java:69
 
static final String NS_PREFIX_PROFILE_ECP
Definition: SamlEcpProfileService.java:54
 
EventBuilder event
Definition: AuthorizationEndpointBase.java:61
 
RealmModel realm
Definition: AuthorizationEndpointBase.java:60