a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Copyright (c) 2006 Sun Microsystems Inc. All Rights Reserved
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The contents of this file are subject to the terms
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * of the Common Development and Distribution License
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * (the License). You may not use this file except in
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * compliance with the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * You can obtain a copy of the License at
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * https://opensso.dev.java.net/public/CDDLv1.0.html or
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * See the License for the specific language governing
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * permission and limitations under the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * When distributing Covered Code, include this CDDL
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Header Notice in each file and include the License file
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * If applicable, add the following below the CDDL Header,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * with the fields enclosed by brackets [] replaced by
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * your own identifying information:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * "Portions Copyrighted [year] [name of copyright owner]"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * $Id: Message.java,v 1.3 2008/06/25 05:47:22 qcheng Exp $
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpackage com.sun.identity.liberty.ws.soapbinding;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.liberty.ws.common.wsse.BinarySecurityToken;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.liberty.ws.common.wsse.WSSEConstants;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.liberty.ws.security.SecurityAssertion;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.liberty.ws.security.SecurityUtils;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml.common.SAMLConstants;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml.common.SAMLException;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The <code>Message</code> class is used by web service client and server to
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * construct request or response. It will be sent over the SOAP connection.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The <code>Message</code> contains SOAP headers and bodies. The SOAP binding
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * defines the following headers: <code>CorrelationHeader</code>,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>ProviderHeader</code>, <code>ConsentHeader</code>,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>UsageDirectiveHeader</code>, <code>ProcessingContextHeader</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * and <code>ServiceInstanceUpdateHeader</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The first 2 are required and the others are optional.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Signing is mandatory for <code>CorrelationHeader</code> and SOAP Body
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * element which is the parent of the bodies. Other headers are optional,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * so each header needs to have a flag to specify whether it needs to be
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * signed or not. For each header that needs to be signed, it must have an
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * id attribute in the top element. The constuctor will take a SAML assertion
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * or cert alias in order to sign.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @supported.all.api
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * anonymous profile is specified.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * X509 Token profile is specified.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * SAML Token profile is specified.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Bearer Token profile is specified.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Authentication mechanism "urn:liberty:security:2003-08:null:null"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "urn:liberty:security:2003-08:null:null";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Authentication mechanism "urn:liberty:security:2003-08:null:X509"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "urn:liberty:security:2003-08:null:X509";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Authentication mechanism "urn:liberty:security:2003-08:null:SAML"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "urn:liberty:security:2003-08:null:SAML";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Authentication mechanism "urn:liberty:security:2004-04:null:Bearer"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "urn:liberty:security:2004-04:null:Bearer";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Authentication mechanism "urn:liberty:security:2003-08:TLS:null"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "urn:liberty:security:2003-08:TLS:null";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Authentication mechanism "urn:liberty:security:2003-08:TLS:X509"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "urn:liberty:security:2003-08:TLS:X509";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Authentication mechanism "urn:liberty:security:2003-08:TLS:SAML"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "urn:liberty:security:2003-08:TLS:SAML";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Authentication mechanism "urn:liberty:security:2004-04:TLS:Bearer"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "urn:liberty:security:2004-04:TLS:Bearer";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Authentication mechanism "urn:liberty:security:2003-08:ClientTLS:null"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "urn:liberty:security:2003-08:ClientTLS:null";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Authentication mechanism "urn:liberty:security:2003-08:ClientTLS:X509"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "urn:liberty:security:2003-08:ClientTLS:X509";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Authentication mechanism "urn:liberty:security:2003-08:ClientTLS:SAML"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "urn:liberty:security:2003-08:ClientTLS:SAML";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Authentication mechanism "urn:liberty:security:2004-04:ClientTLS:Bearer"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "urn:liberty:security:2004-04:ClientTLS:Bearer";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Authentication mechanism "urn:liberty:security:2005-02:null:X509"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "urn:liberty:security:2005-02:null:X509";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Authentication mechanism "urn:liberty:security:2005-02:TLS:X509"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "urn:liberty:security:2005-02:TLS:X509";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Authentication mechanism "urn:liberty:security:2005-02:ClientTLS:X509"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public static final String CLIENT_TLS_X509_WSF11 =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "urn:liberty:security:2005-02:ClientTLS:X509";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Authentication mechanism "urn:liberty:security:2005-02:null:SAML"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "urn:liberty:security:2005-02:null:SAML";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Authentication mechanism "urn:liberty:security:2005-02:TLS:SAML"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "urn:liberty:security:2005-02:TLS:SAML";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Authentication mechanism "urn:liberty:security:2005-02:ClientTLS:SAML"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public static final String CLIENT_TLS_SAML_WSF11 =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "urn:liberty:security:2005-02:ClientTLS:SAML";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Authentication mechanism "urn:liberty:security:2005-02:null:Bearer"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "urn:liberty:security:2005-02:null:Bearer";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Authentication mechanism "urn:liberty:security:2005-02:TLS:Bearer"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "urn:liberty:security:2005-02:TLS:Bearer";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Authentication mechanism "urn:liberty:security:2005-02:ClientTLS:Bearer"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public static final String CLIENT_TLS_BEARER_WSF11 =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "urn:liberty:security:2005-02:ClientTLS:Bearer";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private CorrelationHeader correlationHeader = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private ProcessingContextHeader processingContextHeader = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private ServiceInstanceUpdateHeader serviceInstanceUpdateHeader = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private BinarySecurityToken binarySecurityToken = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private X509Certificate messageCertificate = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private String wsfVersion = SOAPBindingConstants.WSF_11_VERSION;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Default Constructor.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The default constructor uses default cert alias defined in AMConfig for
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param providerHeader <code>ProviderHeader</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SOAPBindingException if provider header is null.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Message(ProviderHeader providerHeader) throws SOAPBindingException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * This constructor takes a SAML assertion for signing.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param providerHeader <code>ProviderHeader</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param assertion a SAML assertion
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SOAPBindingException if an error occurs while processing
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * the SAML assertion or the provider
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * header is null
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Message(ProviderHeader providerHeader,SecurityAssertion assertion)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (X509Certificate)SecurityUtils.getCertificate(assertion);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * This constructor takes a binary security token for signing.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param providerHeader <code>ProviderHeader</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param token a binary security token
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SOAPBindingException if an error occurs while processing
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * the token or the provider header is null
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Message(ProviderHeader providerHeader, BinarySecurityToken token)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Utils.bundle.getString("binarySecurityTokenNull"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster wsfVersion = binarySecurityToken.getWSFVersion();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (X509Certificate)SecurityUtils.getCertificate(binarySecurityToken);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * This constructor is to create a SOAP fault message.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param soapFault <code>SOAPFault</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * This constructor takes an InputStream.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param inputStream an InputStream
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SOAPBindingException if an error occurs while parsing the input.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Message(InputStream inputStream) throws SOAPBindingException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster doc = XMLUtils.toDOMDocument(inputStream, Utils.debug);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SOAPBindingException(ex.getMessage());
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * This constructor takes a SOAP message which is received from a SOAP
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * connection.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param soapMessage a SOAP message
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SOAPBindingException if an error occurs while parsing the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * SOAP message
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws SOAPBindingException,SOAPFaultException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ByteArrayOutputStream bop = new ByteArrayOutputStream();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster doc = XMLUtils.toDOMDocument(bin, Utils.debug);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SOAPBindingException(ex.getMessage());
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Gets security profile type. Possible values are ANONYMOUS, X509_TOKEN
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * and SAML_TOKEN.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the Security Profile type
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets security profile type.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param profileType Profile Type. Possible values are ANONYMOUS,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * X509_TOKEN , SAML_TOKEN and BEARER_TOKEN
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setSecurityProfileType(int profileType) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets a binary security token for this message.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param binaryToken a binary security token
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setBinarySecurityToken(BinarySecurityToken binaryToken) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (X509Certificate)SecurityUtils.getCertificate(binarySecurityToken);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Gets authentication mechanism.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Possible values are NULL_NULL,NULL_X509, NULL_SAML, TLS_NULL,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * TLS_X509, TLS_SAML, CLIENT_TLS_NULL,CLIENT_TLS_X509, CLIENT_TLS_SAML,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * NULL_BEAER, TLS_BEARER, and CLIENT_TLS_BEARER.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return an authentication mechanism
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster authenticationMechanism = CLIENT_TLS_X509_WSF11;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster authenticationMechanism = CLIENT_TLS_SAML_WSF11;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster authenticationMechanism = CLIENT_TLS_BEARER_WSF11;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns a boolean flag to determine if this Message will be sent to
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * a server that requires client authentication.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return true if this Message will be sent to a server that
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * requires client authentication
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the <code>CorrelationHeader</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the <code>CorrelationHeader</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public CorrelationHeader getCorrelationHeader() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the <code>ConsentHeader</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the <code>ConsentHeader</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns a list of <code>UsageDirectiveHeader</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return a list of <code>UsageDirectiveHeader</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the <code>ProviderHeader</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the <code>ProviderHeader</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the <code>ProcessingContextHeader</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the <code>ProcessingContextHeader</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public ProcessingContextHeader getProcessingContextHeader() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the <code>ServiceInstanceUpdateHeader</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the <code>ServiceInstanceUpdateHeader</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public ServiceInstanceUpdateHeader getServiceInstanceUpdateHeader() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns a list of SOAP headers except <code>CorrelationHeader</code>,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>ConsentHeader</code>, <code>UsageDirectiveHeader</code> and
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>Security</code> header. Each entry will be a
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>org.w3c.dom.Element</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return a list of SOAP headers
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the <code>SOAPFault</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the <code>SOAPFault</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns a list of SOAP bodies.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Each entry will be a <code>org.w3c.dom.Element</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return a list of SOAP bodies
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns a list of SOAP bodies.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Each entry will be a <code>org.w3c.dom.Element</code> with specified
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * namespace URI and local name.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param namespaceURI namspace URI
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param localName local name
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return a list of SOAP bodies
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public List getBodies( String namespaceURI, String localName) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (soapBodies != null && !soapBodies.isEmpty()) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns a list of security header except the SAML assertion used in
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * SAML token profile or the binary security token used in X509 token
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * profile. Each entry will be a <code>org.w3c.dom.Element</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return a list of security headers
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the SAML assertion used for signing.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the SAML assertion.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns a binary security token used for signing.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return a binary security token.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public BinarySecurityToken getBinarySecurityToken() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the X509 certificate used in client authentication.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return a X509 certificate
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the X509 certificate used in message level authentication.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return a X509 certificate.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public X509Certificate getMessageCertificate() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns a token for the sender of this Message.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return a token Object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the IP address of remote site of the SOAP connection.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return a IP address
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns a list of id's for signing.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return a list of id's for signing.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Iterator iter = usageDirectiveHeaders.iterator();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String id = ((UsageDirectiveHeader)iter.next()).getId();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String id = serviceInstanceUpdateHeader.getId();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (signingIds != null && !signingIds.isEmpty()) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets the <code>CorrelationHeader</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param correlationHeader <code>CorrelationHeader</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setCorrelationHeader(CorrelationHeader correlationHeader) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets <code>ConsentHeader</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param consentHeader the <code>ConsentHeader</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setConsentHeader(ConsentHeader consentHeader) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets a list of <code>UsageDirectiveHeader</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param usageDirectiveHeaders a list of <code>UsageDirectiveHeader</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setUsageDirectiveHeaders(List usageDirectiveHeaders) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.usageDirectiveHeaders = usageDirectiveHeaders;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets <code>ProviderHeader</code> if it is not null.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param providerHeader the <code>ProviderHeader</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setProviderHeader(ProviderHeader providerHeader) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets the <code>ProcessingContextHeader</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param processingContextHeader <code>ProcessingContextHeader</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ProcessingContextHeader processingContextHeader) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.processingContextHeader = processingContextHeader;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets the <code>ServiceInstanceUpdateHeader</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param serviceInstanceUpdateHeader
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * the <code>ServiceInstanceUpdateHeader</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ServiceInstanceUpdateHeader serviceInstanceUpdateHeader) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.serviceInstanceUpdateHeader = serviceInstanceUpdateHeader;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets a list of SOAP headers except <code>CorrelationHeader</code>,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>ConsentHeader</code>, <code>UsageDirectiveHeader</code> and
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * 'Security' header. Each entry will be a <code>org.w3c.dom.Element</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param headers a list of SOAP headers.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param signingIds a list of values of <code>id</code> attribute for
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setOtherSOAPHeaders(List headers, List signingIds) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets a SOAP header except <code>CorrelationHeader</code>,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>ConsentHeader</code> and <code>UsageDirectiveHeader</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param header a <code>org.w3c.dom.Element</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param signingId the value of <code>id</code> attribute for signing.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * A value null value for this attribute is assumed as no signing.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setOtherSOAPHeader(Element header, String signingId) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets a list of security headers. Each entry will be a
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>org.w3c.dom.Element</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param headers a list of security headers.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setOtherSecurityHeaders(List headers) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets a security header.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param header the security header element.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setOtherSecurityHeader(Element header) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets the <code>SOAPFault</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param soapFault the <code>SOAPFault</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setSOAPFault(SOAPFault soapFault) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets a list of SOAP bodies. Each entry will be a
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>org.w3c.dom.Element</code>. To send a SOAP Fault, please use
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * method <code>setSOAPFault</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param bodies a list of SOAP bodies.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets a SOAP body. To send a SOAP Fault, please use method
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>setSOAPFault</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param body a <code>org.w3c.dom.Element</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets the IP address of remote site of the SOAP connection.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param ipAddress a IP address
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets the protocol value . The expected
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * value is either http or https.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param protocol the protocol value.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets the X509 certificate used in client authentication.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param cert a X509 certificate
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster void setPeerCertificate(X509Certificate cert) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets a boolean flag. If the flag is true, this Message will be sent to
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * a server that requires client authentication.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param clientAuthentication a boolean flag
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setClientAuthentication( boolean clientAuthentication) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.clientAuthentication = clientAuthentication;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets a token for the sender of this Message. The accual type
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * will be the same as the type of the Object retured from
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>WebServiceAuthenticator.authenticate</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param Object a token Object
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the SOAP message in String format.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the SOAP message in String format.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return XMLUtils.print(toDocument(true).getDocumentElement());
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the SOAP message in <code>org.w3c.dom.Document</code> format.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the SOAP message in <code>org.w3c.dom.Document</code> format.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SOAPBindingException if an error occurs while constructing
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * a document.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Document toDocument() throws SOAPBindingException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return toDocument(false);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the SOAP message in <code>org.w3c.dom.Document</code> format.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param refresh true to reconstruct a document, false to reuse a
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * previous document. If previous document doesn't exist,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * it will construct a new document.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the SOAP message in <code>org.w3c.dom.Document</code> format.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SOAPBindingException if an error occurs while constructing
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * the <code>org.w3c.dom.Document</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Document toDocument( boolean refresh) throws SOAPBindingException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SOAPBindingException(ex.getMessage());
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if(SOAPBindingConstants.WSF_10_VERSION.equals(wsfVersion)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Element envelopeE = doc.createElementNS(SOAPBindingConstants.NS_SOAP,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster envelopeE.setAttributeNS(SOAPBindingConstants.NS_XML,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster envelopeE.setAttributeNS(SOAPBindingConstants.NS_XML,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster envelopeE.setAttributeNS(SOAPBindingConstants.NS_XML,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster envelopeE.setAttributeNS(SOAPBindingConstants.NS_XML,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Element headerE = doc.createElementNS(SOAPBindingConstants.NS_SOAP,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Iterator iter = usageDirectiveHeaders.iterator();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ((UsageDirectiveHeader)iter.next()).addToParent(headerE);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster serviceInstanceUpdateHeader.addToParent(headerE);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (soapHeaders != null && !soapHeaders.isEmpty()) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Utils.debug.message("Message.toDocument: adding headers ");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster headerE.appendChild(doc.importNode(soapHeaderE, true));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (securityHeaders != null && !securityHeaders.isEmpty());
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (securityProfileType != ANONYMOUS || hasSecurityHeaders) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "Message.toDocument: adding security headers ");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Element securityE = doc.createElementNS(wsseNS,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster WSSEConstants.TAG_WSSE + ":" + WSSEConstants.TAG_SECURITYT);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster securityE.setAttributeNS(SOAPBindingConstants.NS_XML,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster XMLUtils.toDOMDocument(assertion.toString(true, true),
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Utils.bundle.getString("cannotProcessSAMLAssertion");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Element assertionE = assertionDoc.getDocumentElement();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster securityE.appendChild(doc.importNode(assertionE, true));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster XMLUtils.toDOMDocument(binarySecurityToken.toString(),
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "cannotProcessBinarySecurityToken");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Element binarySecurityTokenE = bstDoc.getDocumentElement();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster securityE.appendChild(doc.importNode(binarySecurityTokenE,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster securityE.appendChild(doc.importNode((Node)iter.next(),
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Utils.debug.message("Message.toDocument: adding soapFault ");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster bodyE = doc.createElementNS(SOAPBindingConstants.NS_SOAP,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (soapBodies != null && !soapBodies.isEmpty()){
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Utils.debug.message("Message.toDocument: adding bodies ");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster bodyE = doc.createElementNS(SOAPBindingConstants.NS_SOAP,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster bodyE.setAttributeNS(SOAPBindingConstants.NS_XML,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster bodyE.appendChild(doc.importNode(soapBodyE, true));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (SOAPBindingConstants.WSF_10_VERSION.equals(wsfVersion)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster bodyE.setAttributeNS(null, SOAPBindingConstants.ATTR_id,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster bodyE.setAttributeNS(wsuNS, WSSEConstants.WSU_ID, bodyId);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the SOAP message in SOAPMessage format.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the SOAP message in SOAPMessage format.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SOAPBindingException if an error occurs while converting
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * this object to a SOAP message.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SOAPMessage toSOAPMessage() throws SOAPBindingException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return Utils.DocumentToSOAPMessage(toDocument(true));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Parses a <code>org.w3c.dom.Document</code> to construct this object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param doc a <code>org.w3c.dom.Document</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SOAPBindingException if an error occurs while parsing
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * the document
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private void parseDocument( Document doc) throws SOAPBindingException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Utils.debug.message("Message.parseDocument: doc = " +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String msg = Utils.bundle.getString("soapEnvelopeMissingChildren");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Utils.debug.error("Message.parseDocument: " + msg);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (child.getNodeType() == Node.ELEMENT_NODE) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String namespaceURI = element.getNamespaceURI();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (SOAPBindingConstants.NS_SOAP.equals(namespaceURI)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (SOAPBindingConstants.TAG_HEADER.equals(localName)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else if(SOAPBindingConstants.TAG_BODY.equals(localName)){
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // parsing Header element
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (child.getNodeType() == Node.ELEMENT_NODE) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (SOAPBindingConstants.NS_SOAP_BINDING.equals(ns)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster correlationHeader = new CorrelationHeader(element);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else if(SOAPBindingConstants.TAG_USAGE_DIRECTIVE
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else if (SOAPBindingConstants.TAG_PROCESSING_CONTEXT
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else if (SOAPBindingConstants.NS_SOAP_BINDING_11
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (WSSEConstants.TAG_SECURITYT.equals(localName)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // parsing Body element
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (child.getNodeType() == Node.ELEMENT_NODE) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SOAPBindingConstants.TAG_FAULT.equals(localName)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets security profile type by parsing a security element.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param se a security element
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SOAPBindingException if an error occurs while parsing
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * the security element
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private void parseSecurityElement(Element securityE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (wsseNS.equals(WSSEConstants.NS_WSSE_WSF11)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster wsfVersion = SOAPBindingConstants.WSF_11_VERSION;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else if(wsseNS.equals(WSSEConstants.NS_WSSE)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster wsfVersion = SOAPBindingConstants.WSF_10_VERSION;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster NodeList nl = securityE.getElementsByTagNameNS(wsseNS,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster List list = XMLUtils.getElementsByTagNameNS1(securityTokenRefE,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster uri = XMLUtils.getNodeAttributeValue(referenceE,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (uri != null && uri.length() > 1 && uri.startsWith("#")) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String msg = Utils.bundle.getString("invalidReferenceURI");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Utils.debug.error("Message.parseSecurityElement: " + msg);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Utils.debug.message("Message.parseSecurityElement: " +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "SecurityTokenReference Reference URI = " + uri);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (child.getNodeType() == Node.ELEMENT_NODE) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (SAMLConstants.BINARYSECURITYTOKEN.equals(localName) &&
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String valuetype = XMLUtils.getNodeAttributeValue(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "ValueType");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster binarySecurityTokenE, wsuNS, SAMLConstants.TAG_ID);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "cannotProcessBinarySecurityToken");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Utils.debug.error("Message.parseSecurityElement: "+
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Utils.debug.message("Message.parseSecurityElement:" +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster " found binary security token");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else if (SAMLConstants.TAG_ASSERTION.equals(localName) &&
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLConstants.assertionSAMLNameSpaceURI.equals(ns)){
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String assertionID = XMLUtils.getNodeAttributeValue(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "cannotProcessSAMLAssertion");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Utils.debug.error("Message.parseSecurityElement: " +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Utils.debug.message("Message.parseSecurityElement:" +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster " found security assertion, " +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "isBearer = " +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the web services version of the message.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the web services version.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets the web services version to the message.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param version the web services framework version.