a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster/**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Copyright (c) 2006 Sun Microsystems Inc. All Rights Reserved
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
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 *
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 * opensso/legal/CDDLv1.0.txt
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * See the License for the specific language governing
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * permission and limitations under the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * When distributing Covered Code, include this CDDL
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Header Notice in each file and include the License file
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * at opensso/legal/CDDLv1.0.txt.
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 *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * $Id: AuthnRequestImpl.java,v 1.8 2009/06/09 20:28:32 exu Exp $
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpackage com.sun.identity.saml2.protocol.impl;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.shared.xml.XMLUtils;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.shared.DateUtils;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml.xmlsig.XMLSignatureException;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml.xmlsig.XMLSignatureManager;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml2.common.SAML2SDKUtils;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml2.assertion.AssertionFactory;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml2.assertion.Conditions;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml2.assertion.Issuer;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml2.assertion.Subject;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml2.common.SAML2Constants;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml2.common.SAML2Exception;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml2.protocol.AuthnRequest;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml2.protocol.NameIDPolicy;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml2.protocol.ProtocolFactory;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml2.protocol.RequestedAuthnContext;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml2.protocol.Scoping;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport org.w3c.dom.Element;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport org.w3c.dom.Document;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport org.w3c.dom.Node;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport org.w3c.dom.NodeList;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster/**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The <code>AuthnRequestImpl</code> implements the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * </code>AuthnRequest</code> interface , defines methods for
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * properties required by a saml request.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpublic class AuthnRequestImpl extends RequestAbstractImpl
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster implements AuthnRequest {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private Subject subject;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private NameIDPolicy nameIDPolicy;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private Conditions conditions;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private RequestedAuthnContext reqAuthnContext;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private Scoping scoping;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private Integer assertionConsumerSvcIndex;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private Integer attrConsumingSvcIndex;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private String providerName;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private Boolean forceAuthn;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private Boolean isPassive;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private String protocolBinding;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private String assertionConsumerServiceURL;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Constructor to create <code>AuthnRequest</code> Object .
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public AuthnRequestImpl() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster isMutable=true;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Constructor to create <code>AuthnRequest</code> Object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param element the Document Element Object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SAML2Exception if error creating <code>AuthnRequest</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public AuthnRequestImpl(Element element) throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster parseDOMElement(element);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (isSigned) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster signedXMLString = XMLUtils.print(element);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Constructor to create <code>AuthnRequest</code> Object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param xmlString the XML String.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SAML2Exception if error creating <code>AuthnRequest</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public AuthnRequestImpl(String xmlString) throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Document xmlDocument =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster XMLUtils.toDOMDocument(xmlString,SAML2SDKUtils.debug);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (xmlDocument == null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("errorObtainingElement"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster parseDOMElement(xmlDocument.getDocumentElement());
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (isSigned) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster signedXMLString = xmlString;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the <code>Subject</code> object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the <code>Subject</code> object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #setSubject(Subject)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Subject getSubject() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return subject;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets the <code>Subject</code> object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param subject the new <code>Subject</code> object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SAML2Exception if the object is immutable.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #getSubject
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setSubject(Subject subject) throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (!isMutable) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("objectImmutable"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.subject = subject;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the <code>NameIDPolicy</code> object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the <code>NameIDPolicy</code> object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #setNameIDPolicy(NameIDPolicy)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public NameIDPolicy getNameIDPolicy() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return nameIDPolicy;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets the <code>NameIDPolicy</code> object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param nameIDPolicy the new <code>NameIDPolicy</code> object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SAML2Exception if the object is immutable.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #getNameIDPolicy
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setNameIDPolicy(NameIDPolicy nameIDPolicy)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (!isMutable) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("objectImmutable"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.nameIDPolicy = nameIDPolicy;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the <code>Conditions</code> object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the <code>Conditions</code> object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #setConditions(Conditions)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Conditions getConditions() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return conditions;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets the <code>Conditions</code> object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param conditions the new <code>Conditions</code> object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SAML2Exception if the object is immutable.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #getConditions
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setConditions(Conditions conditions) throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (!isMutable) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("objectImmutable"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.conditions = conditions;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the <code>RequestedAuthnContext</code> object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the <code>RequestAuthnContext</code> object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #setRequestedAuthnContext(RequestedAuthnContext)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public RequestedAuthnContext getRequestedAuthnContext() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return reqAuthnContext;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets the <code>RequestedAuthnContext</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param reqAuthnContext the new <code>RequestedAuthnContext</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SAML2Exception if the object is immutable.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #getRequestedAuthnContext
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setRequestedAuthnContext(RequestedAuthnContext reqAuthnContext)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (!isMutable) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("objectImmutable"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.reqAuthnContext = reqAuthnContext;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets the <code>Scoping</code> object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param scoping the new <code>Scoping</code> Object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SAML2Exception if the object is immutable.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #getScoping
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setScoping(Scoping scoping) throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (!isMutable) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("objectImmutable"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.scoping = scoping;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the <code>Scoping</code> object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the <code>Scoping</code> object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #setScoping(Scoping)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Scoping getScoping() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return scoping;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns value of <code>isForceAuthn</code> attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return value of <code>isForceAuthn</code> attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Boolean isForceAuthn() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return forceAuthn;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets the value of the <code>ForceAuthn</code> attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param value the value of <code>ForceAuthn</code> attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SAML2Exception if the object is immutable.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setForceAuthn(Boolean value) throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (!isMutable) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("objectImmutable"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster forceAuthn = value;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the value of the <code>isPassive</code> attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return value of <code>isPassive</code> attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Boolean isPassive() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return isPassive;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets the value of the <code>IsPassive</code> attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param value Value of <code>IsPassive</code> attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SAML2Exception if the object is immutable.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setIsPassive(Boolean value) throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (!isMutable) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("objectImmutable"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster isPassive = value;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets the value of the <code>ProtocolBinding</code> attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param protocolBinding value of the <code>ProtocolBinding</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SAML2Exception if the object is immutable.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #getProtocolBinding
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setProtocolBinding(String protocolBinding)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (!isMutable) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("objectImmutable"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.protocolBinding = protocolBinding;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the value of the <code>ProtocolBinding</code> attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the value of <code>ProtocolBinding</code> attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #setProtocolBinding(String)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String getProtocolBinding() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return protocolBinding;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the value of the <code>AssertionConsumerServiceURL</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the value of <code>AssertionConsumerServiceURL</code> attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #setAssertionConsumerServiceURL(String)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String getAssertionConsumerServiceURL() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return assertionConsumerServiceURL;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets the value of the <code>AssertionConsumerServiceURL</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param url the value of <code>AssertionConsumerServiceURL</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SAML2Exception if the object is immutable.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #getAssertionConsumerServiceURL()
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setAssertionConsumerServiceURL(String url)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (!isMutable) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("objectImmutable"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster assertionConsumerServiceURL = url;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the value of the <code>AssertionConsumerServiceIndex</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return value of the <code>AssertionConsumerServiceIndex<code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #setAssertionConsumerServiceIndex(Integer)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Integer getAssertionConsumerServiceIndex() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return assertionConsumerSvcIndex;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets the value of the <code>AssertionConsumerServiceIndex</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param index value of the <code>AssertionConsumerServiceIndex</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SAML2Exception if the object is immutable.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #getAssertionConsumerServiceIndex
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setAssertionConsumerServiceIndex(Integer index)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (!isMutable) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("objectImmutable"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster assertionConsumerSvcIndex = index ;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the value of the <code>AttributeConsumingServiceIndex</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return value of the <code>AttributeConsumingServiceIndex<code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #setAttributeConsumingServiceIndex(Integer)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Integer getAttributeConsumingServiceIndex() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return attrConsumingSvcIndex;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets the value of the <code>AttributeConsumingServiceIndex</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param index value of the <code>AttributeConsumingServiceIndex</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SAML2Exception if the object is immutable.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #getAttributeConsumingServiceIndex
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setAttributeConsumingServiceIndex(Integer index)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (!isMutable) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("objectImmutable"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster attrConsumingSvcIndex = index ;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets the <code>ProviderName</code> attribute value.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param providerName value of the <code>ProviderName</code> attribute.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SAML2Exception if the object is immutable.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #getProviderName
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setProviderName(String providerName) throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (!isMutable) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("objectImmutable"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.providerName = providerName ;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the <code>ProviderName</code> attribute value.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return value of the <code>ProviderName</code> attribute value.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @see #setProviderName(String)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String getProviderName() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return providerName;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /** Returns a String representation of this Object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception SAML2Exception if it could not create String object
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return a String representation of this Object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public java.lang.String toXMLString() throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return toXMLString(true,false);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /** Returns a String representation
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param includeNSPrefix determines whether or not the namespace
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * qualifier is prepended to the Element when converted
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param declareNS determines whether or not the namespace is declared
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * within the Element.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception SAML2Exception ,if it could not create String object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return a String representation of this Object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster **/
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String toXMLString(boolean includeNSPrefix,boolean declareNS)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (isSigned && signedXMLString != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return signedXMLString;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster validateData();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster validateAssertionConsumerServiceIndex(assertionConsumerSvcIndex);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster validateAttributeConsumingServiceIndex(attrConsumingSvcIndex);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster StringBuffer xmlString = new StringBuffer(1000);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster xmlString.append(SAML2Constants.START_TAG);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (includeNSPrefix) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster xmlString.append(SAML2Constants.PROTOCOL_PREFIX);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster xmlString.append(SAML2Constants.AUTHNREQUEST)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.SPACE);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (declareNS) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster xmlString.append(SAML2Constants.PROTOCOL_DECLARE_STR)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.NEWLINE);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster xmlString.append(SAML2Constants.ID).append(SAML2Constants.EQUAL)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.QUOTE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(requestId).append(SAML2Constants.QUOTE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.SPACE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.VERSION).append(SAML2Constants.EQUAL)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.QUOTE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(version).append(SAML2Constants.QUOTE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.SPACE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.ISSUE_INSTANT)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.EQUAL)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.QUOTE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(DateUtils.toUTCDateFormat(issueInstant))
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.QUOTE);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((destinationURI != null) && (destinationURI.length() > 0)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster xmlString.append(SAML2Constants.SPACE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.DESTINATION)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.EQUAL)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.QUOTE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(destinationURI)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.QUOTE);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((consent != null) && (consent.length() > 0)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster xmlString.append(SAML2Constants.SPACE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.CONSENT)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.EQUAL)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.QUOTE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(consent)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.QUOTE);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (forceAuthn != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster xmlString.append(SAML2Constants.SPACE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.FORCEAUTHN)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.EQUAL)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.QUOTE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(forceAuthn.toString())
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.QUOTE);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (isPassive != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster xmlString.append(SAML2Constants.SPACE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.ISPASSIVE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.EQUAL)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.QUOTE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(isPassive.toString())
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.QUOTE);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // include assertionConsumerSvcIndex OR
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // AssertionConsumerServiceURL && ProtocolBinding
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (assertionConsumerSvcIndex != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster xmlString.append(SAML2Constants.SPACE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.ASSERTION_CONSUMER_SVC_INDEX)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.EQUAL)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.QUOTE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(assertionConsumerSvcIndex.toString())
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.QUOTE);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((protocolBinding != null) && (protocolBinding.length() > 0)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster xmlString.append(SAML2Constants.SPACE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.PROTOBINDING)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.EQUAL)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.QUOTE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(protocolBinding)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.QUOTE);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((assertionConsumerServiceURL != null) &&
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (assertionConsumerServiceURL.length() > 0)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster xmlString.append(SAML2Constants.SPACE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.ASSERTION_CONSUMER_SVC_URL)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.EQUAL)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.QUOTE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(XMLUtils.escapeSpecialCharacters(assertionConsumerServiceURL))
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.QUOTE);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (attrConsumingSvcIndex != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster xmlString.append(SAML2Constants.SPACE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.ATTR_CONSUMING_SVC_INDEX)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.EQUAL)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.QUOTE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(attrConsumingSvcIndex.toString())
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.QUOTE);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((providerName != null) &&
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (providerName.length() > 0)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster xmlString.append(SAML2Constants.SPACE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.PROVIDER_NAME)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.EQUAL)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.QUOTE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(providerName)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.QUOTE);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster xmlString.append(SAML2Constants.END_TAG);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (nameID != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String issuerString = nameID.toXMLString(includeNSPrefix,declareNS);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster xmlString.append(SAML2Constants.NEWLINE).append(issuerString);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((signatureString != null) && (signatureString.length() > 0)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster xmlString.append(SAML2Constants.NEWLINE).append(signatureString);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (extensions != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster xmlString.append(SAML2Constants.NEWLINE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(extensions.toXMLString(includeNSPrefix,declareNS));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (subject != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster xmlString.append(SAML2Constants.NEWLINE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(subject.toXMLString(includeNSPrefix,declareNS));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (nameIDPolicy != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster xmlString.append(SAML2Constants.NEWLINE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(nameIDPolicy.toXMLString(includeNSPrefix,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster declareNS));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (conditions != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster xmlString.append(SAML2Constants.NEWLINE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(conditions.toXMLString(includeNSPrefix,declareNS));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (reqAuthnContext != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster xmlString.append(SAML2Constants.NEWLINE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster reqAuthnContext.toXMLString(includeNSPrefix,declareNS));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (scoping != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster xmlString.append(SAML2Constants.NEWLINE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(scoping.toXMLString(includeNSPrefix,declareNS));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster xmlString.append(SAML2Constants.NEWLINE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.SAML2_END_TAG)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.AUTHNREQUEST)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster .append(SAML2Constants.END_TAG);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return xmlString.toString();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Makes this object immutable.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void makeImmutable() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (isMutable) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster super.makeImmutable();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((subject != null) && (subject.isMutable())) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster subject.makeImmutable();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((nameIDPolicy != null) && (nameIDPolicy.isMutable())) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster nameIDPolicy.makeImmutable();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((conditions != null) && (conditions.isMutable())) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster conditions.makeImmutable();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((reqAuthnContext != null) && (reqAuthnContext.isMutable())) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster reqAuthnContext.makeImmutable();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((scoping != null) && (scoping.isMutable())) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster scoping.makeImmutable();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster isMutable = false;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Parses the Docuemnt Element for this object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param element the Document Element of this object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SAML2Exception if error parsing the Document Element.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster protected void parseDOMElement(Element element) throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster AssertionFactory assertionFactory = AssertionFactory.getInstance();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ProtocolFactory protoFactory = ProtocolFactory.getInstance();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster requestId = element.getAttribute(SAML2Constants.ID);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster validateID(requestId);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster version = element.getAttribute(SAML2Constants.VERSION);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster validateVersion(version);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String issueInstantStr = element.getAttribute(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2Constants.ISSUE_INSTANT);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster validateIssueInstant(issueInstantStr);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster destinationURI = element.getAttribute(SAML2Constants.DESTINATION);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster consent = element.getAttribute(SAML2Constants.CONSENT);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster NodeList nList = element.getChildNodes();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((nList !=null) && (nList.getLength() >0)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster for (int i = 0; i < nList.getLength(); i++) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Node childNode = nList.item(i);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String cName = childNode.getLocalName() ;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (cName != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (cName.equals(SAML2Constants.ISSUER)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster validateIssuer();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster nameID =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster assertionFactory.createIssuer((Element)childNode);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else if (cName.equals(SAML2Constants.SIGNATURE)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster validateSignature();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster signatureString = XMLUtils.print((Element) childNode);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster isSigned = true;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else if (cName.equals(SAML2Constants.EXTENSIONS)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster validateExtensions();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster extensions =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster protoFactory.createExtensions((Element)childNode);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else if (cName.equals(SAML2Constants.SUBJECT)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster validateSubject();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster subject =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster assertionFactory.createSubject((Element)childNode);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else if (cName.equals(SAML2Constants.NAMEIDPOLICY)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster validateNameIDPolicy();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster nameIDPolicy =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster protoFactory.createNameIDPolicy((Element)childNode);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else if (cName.equals(SAML2Constants.CONDITIONS)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster validateConditions();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster conditions =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster assertionFactory.createConditions((Element)childNode);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else if (cName.equals(SAML2Constants.REQ_AUTHN_CONTEXT)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster validateReqAuthnContext();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster reqAuthnContext=
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster protoFactory.createRequestedAuthnContext(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (Element)childNode);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else if (cName.equals(SAML2Constants.SCOPING)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster validateScoping();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster scoping=
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster protoFactory.createScoping((Element)childNode);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // Get ForceAuthn Attribute
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String forceAuthnAttr = element.getAttribute(SAML2Constants.FORCEAUTHN);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((forceAuthnAttr != null) && (forceAuthnAttr.length() > 0)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster forceAuthn = SAML2SDKUtils.booleanValueOf(forceAuthnAttr);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String isPassiveAttr = element.getAttribute(SAML2Constants.ISPASSIVE);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((isPassiveAttr != null) && (isPassiveAttr.length() > 0)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster isPassive = SAML2SDKUtils.booleanValueOf(isPassiveAttr);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster protocolBinding = element.getAttribute(SAML2Constants.PROTOBINDING);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String index = element.getAttribute(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2Constants.ASSERTION_CONSUMER_SVC_INDEX);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ( (index != null) && (index.length() > 0)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster assertionConsumerSvcIndex = new Integer(index);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster validateAssertionConsumerServiceIndex(assertionConsumerSvcIndex);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster assertionConsumerServiceURL=XMLUtils.unescapeSpecialCharacters(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster element.getAttribute(SAML2Constants.ASSERTION_CONSUMER_SVC_URL));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster index = element.getAttribute(SAML2Constants.ATTR_CONSUMING_SVC_INDEX);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ( (index != null) && (index.length() > 0)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster attrConsumingSvcIndex = new Integer(index);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster validateAttributeConsumingServiceIndex(attrConsumingSvcIndex);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster providerName = element.getAttribute(SAML2Constants.PROVIDER_NAME);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /* validate the value of AssertionConsumerServiceIndex attribute*/
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private void validateAssertionConsumerServiceIndex(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Integer assertionConsumerSvcIndex) throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((assertionConsumerSvcIndex != null) &&
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ((assertionConsumerSvcIndex.intValue() < 0) &&
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (assertionConsumerSvcIndex.intValue()
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster > SAML2Constants.MAX_INT_VALUE))) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("invalidAssertionConsumerIndex"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /* validate the value of AttributeConsumingServiceIndex attribute*/
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private void validateAttributeConsumingServiceIndex(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Integer attrConsumingSvcIndex) throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((attrConsumingSvcIndex != null) &&
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ((attrConsumingSvcIndex.intValue() < 0) &&
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (attrConsumingSvcIndex.intValue()
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster > SAML2Constants.MAX_INT_VALUE))) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("invalidAttributeConsumingSvcIdx"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /* validate the sequence and occurence of Issuer Element*/
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private void validateIssuer() throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (nameID != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.debug.message("Request has too many Issuer Element");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("schemaViolation"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((signatureString != null) || (extensions != null)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster || (subject != null) || (nameIDPolicy != null)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster || (conditions != null) || (reqAuthnContext != null)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster || (scoping != null)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (SAML2SDKUtils.debug.messageEnabled()) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.debug.message("Issuer Element should be the " +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "first element in the Request");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("schemaViolation"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /* validate the sequence and occurence of Signature Element*/
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private void validateSignature() throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (signatureString != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.debug.message("Request has too many Signature Elements");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("schemaViolation"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((extensions != null) || (subject != null) || (nameIDPolicy != null)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster || (conditions != null)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster || (reqAuthnContext != null)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster || (scoping != null)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (SAML2SDKUtils.debug.messageEnabled()) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.debug.message("Signature should be the " +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "second element in the Request");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("schemaViolation"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /* validate the sequence and occurence of Extensions Element*/
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private void validateExtensions() throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (extensions != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.debug.message("Request has too many Extension Elements");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("schemaViolation"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((subject != null) || (nameIDPolicy != null)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster || (conditions != null)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster || (reqAuthnContext != null)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster || (scoping != null)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (SAML2SDKUtils.debug.messageEnabled()) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.debug.message("Extensions should be the " +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "third element in the Request");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("schemaViolation"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /* validate the sequence and occurence of Subject Element*/
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private void validateSubject() throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (subject != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.debug.message("Request has too many Subject Elements");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("schemaViolation"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((nameIDPolicy != null)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster || (conditions != null)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster || (reqAuthnContext != null)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster || (scoping != null)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (SAML2SDKUtils.debug.messageEnabled()) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.debug.message("Subject should be the " +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "fourth element in the Request");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("schemaViolation"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /* validate the sequence and occurence of NameIDPolicy Element*/
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private void validateNameIDPolicy() throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (nameIDPolicy != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (SAML2SDKUtils.debug.messageEnabled()) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.debug.message("Request has too many " +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "NameIDPolicy Elements");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("schemaViolation"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((conditions != null) || (reqAuthnContext != null)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster || (scoping != null)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (SAML2SDKUtils.debug.messageEnabled()) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.debug.message("Subject should be the " +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "fourth element in the Request");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("schemaViolation"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /* validate the sequence and occurence of Conditions Element*/
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private void validateConditions() throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (conditions != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (SAML2SDKUtils.debug.messageEnabled()) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.debug.message("Request has too many " +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "Conditions Elements");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("schemaViolation"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((reqAuthnContext != null) || (scoping != null)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (SAML2SDKUtils.debug.messageEnabled()) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.debug.message("Conditions should be the " +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "fifth element in the Request");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("schemaViolation"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /* validate the sequence and occurence of RequestedAuthnContext Element*/
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private void validateReqAuthnContext () throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (reqAuthnContext != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (SAML2SDKUtils.debug.messageEnabled()) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.debug.message("Request has too many " +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "RequestedAuthnContext Elements");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("schemaViolation"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (scoping != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (SAML2SDKUtils.debug.messageEnabled()) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.debug.message("RequestedAuthnContext should " +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "be the sixth element in the Request");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("schemaViolation"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /* Validates the sequence and occurence of Scoping Element*/
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private void validateScoping() throws SAML2Exception {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (scoping != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.debug.message("Request has too many Scoping Elements");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAML2Exception(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAML2SDKUtils.bundle.getString("schemaViolation"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster}