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: Assertion.java,v 1.3 2008/06/25 05:47:31 qcheng Exp $
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.common.SystemConfigurationUtil;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *This object stands for <code>Assertion</code> element. An Assertion is a
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *package of information that supplies one or more <code>Statement</code> made
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *by an issuer. There are three kinds of assertionsL Authentication,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *AuthorizationDecision and Attribute assertion.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *@supported.all.api
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns whether the signature on the object is valid or not.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return true if the signature on the object is valid; false otherwise.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Signs the Assertion.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception SAMLException If it could not sign the Assertion.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Signs the Assertion.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param certAlias certification Alias used to sign Assertion.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception SAMLException if it could not sign the Assertion.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void signXML(String certAlias) throws SAMLException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtils.debug.message("Assertion.signXML: the assertion is "
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster + "already signed.");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtils.debug.message("Assetion.signXML: couldn't obtain "
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster + "this site's cert alias.");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtils.bundle.getString("cannotFindCertAlias"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster XMLSignatureManager manager = XMLSignatureManager.getInstance();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((_majorVersion == 1) && (_minorVersion == 0)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtils.debug.message("Assetion.signXML: sign with version 1.0");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster signatureString = manager.signXML(this.toString(true, true),
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // this block is used for later return of signature element by
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // getSignature() method
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster XMLUtils.toDOMDocument(signatureString, SAMLUtils.debug)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtils.debug.message("Assetion.signXML: sign with version 1.1");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Document doc = XMLUtils.toDOMDocument(this.toString(true, true),
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // sign with SAML 1.1 spec & include cert in KeyInfo
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster signature = manager.signXML(doc, certAlias, null,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ASSERTION_ID_ATTRIBUTE, getAssertionID(), true, null);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *Default constructor
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *Declaring protected to enable extensibility
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Contructs <code>Assertion</code> object from a
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * block of existing XML that has already been built into a DOM.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param assertionElement A <code>org.w3c.dom.Element</code> representing
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * DOM tree for <code>Assertion</code> object
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception SAMLException if it could not process the Element properly,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * implying that there is an error in the sender or in the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * element definition.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Assertion(org.w3c.dom.Element assertionElement)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster protected void parseAssertionElement(Element assertionElement)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtils.debug.message("Assertion.parseAssertionElement:");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtils.debug.message("Assertion: local name missing");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAMLRequesterException(SAMLUtils.bundle.getString
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ("nullInput")) ;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtils.debug.message("Assertion: invalid root element");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAMLRequesterException(SAMLUtils.bundle.getString
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtils.debug.message("Assertion: Issuer missing");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtils.bundle.getString("missingAttribute") +":"+"Issuer");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster List signs = XMLUtils.getElementsByTagNameNS1(assertionElement,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // delay the signature validation till user call isSignatureValid()
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtils.debug.message("Assertion(Element): included more than"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster + " one Signature element.");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtils.debug.message("Assertion: MajorVersion missing");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtils.bundle.getString("missingAttribute")+":"+
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "MajorVersion");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "Assertion: invalid integer in MajorVersion", ne);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtils.bundle.getString("invalidNumber")+":"+
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "MajorVersion");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "Assertion: MajorVersion too low");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtils.bundle.getString("assertionVersionTooLow")
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "Assertion: MajorVersion too high");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtils.bundle.getString("assertionVersionTooHigh")
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtils.debug.message("Assertion: MinorVersion missing");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "Assertion: invalid integer in MinorVersion", ne);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtils.debug.message("Assertion.parseAssertionElement: " +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "minMinorVersion = " + getMinAssertionMinorVersion() +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ", maxMinorVersion = " + getMaxAssertionMinorVersion());
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtils.debug.message("Assertion: MinorVersion too low");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtils.bundle.getString("assertionVersionTooLow"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else if (ver > getMaxAssertionMinorVersion()) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtils.debug.message("Assertion: MinorVersion too high");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtils.bundle.getString("assertionVersionTooHigh")
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtils.debug.message("Assertion: AssertionID missing");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtils.debug.message("Assertion: IssueInstant missing");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "Assertion: could not parse IssueInstant", pe);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAMLRequesterException(SAMLUtils.bundle.getString(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster NodeList nl = assertionElement.getChildNodes();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (child.getNodeType() != Node.ELEMENT_NODE) continue;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster else if (childName.equals("AuthenticationStatement")) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster _statements.add(new AuthenticationStatement((Element)child));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster else if (childName.equals("AuthorizationDecisionStatement")) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster _statements.add(new AuthorizationDecisionStatement(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster else if (childName.equals("AttributeStatement")) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster _statements.add(new AttributeStatement((Element)child));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster else if (!processUnknownElement((Element)child)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "Assertion: invalid element in Assertion");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAMLRequesterException("invalidElement");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "Assertion: mandatory statement missing");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new SAMLRequesterException("missingStatement");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Contructs <code>Assertion</code> object and populate the data members:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>assertionID</code>, the issuer, time when assertion issued and a
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * set of <code>Statement</code>(s) in the assertion.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param assertionID <code>assertionID</code> attribute contained within
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * this <code>Assertion</code> if null, an <code>assertionID</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * is generated internally.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param issuer The issuer of this assertion.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param issueInstant time instant of the issue. It has type
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>dateTime</code> which is built in to the W3C XML Schema
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Types specification.if null, current time is used.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param statements set of <code>Statement</code> objects within this
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>Assertion</code>. It could be of type
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>AuthenticationStatement</code>,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>AuthorizationDecisionStatement</code> and
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>AttributeStatement</code>. Each Assertion can have multiple
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * type of statements in it.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception SAMLException if there is an error in processing input.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Assertion(String assertionID,java.lang.String issuer,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Date issueInstant, Set statements) throws SAMLException
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster super(assertionID, issuer, issueInstant, statements);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Contructs <code>Assertion</code> object and populate the data members:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * the <code>assertionID</code>, the issuer, time when assertion issued,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * the conditions when creating a new assertion and a set of
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>Statement</code>(s) in the assertion.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param assertionID <code>AssertionID</code> contained within this
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>Assertion</code> if null its generated internally.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param issuer The issuer of this assertion.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param issueInstant time instant of the issue. It has type
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>dateTime</code> which is built in to the W3C XML Schema
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Types specification. if null, current time is used.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param conditions <code>Conditions</code> under which the this
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>Assertion</code> is valid.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param statements Set of <code>Statement</code> objects within this
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>Assertion</code>. It could be of type
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>AuthenticationStatement</code>,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>AuthorizationDecisionStatement</code> and
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>AttributeStatement</code>. Each Assertion can have multiple
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * type of statements in it.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception SAMLException if there is an error in processing input.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Assertion(String assertionID,java.lang.String issuer,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Date issueInstant, Conditions conditions, Set statements)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster super(assertionID, issuer, issueInstant, conditions, statements);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Contructs <code>Assertion</code> object and populate the data members:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * the <code>ssertionID</code>, the issuer, time when assertion issued,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * the conditions when creating a new assertion , <code>Advice</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * applicable to this <code>Assertion</code> and a set of
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>Statement</code>(s) in the assertion.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param assertionID <code>AssertionID</code> object contained within this
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>Assertion</code> if null its generated internally.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param issuer The issuer of this assertion.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param issueInstant Time instant of the issue. It has type
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>dateTime</code> which is built in to the W3C XML Schema
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Types specification. if null, current time is used.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param conditions <code>Conditions</code> under which the this
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>Assertion</code> is valid.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param advice <code>Advice</code> applicable for this
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>Assertion</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param statements Set of <code>Statement</code> objects within this
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>Assertion</code>. It could be of type
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>AuthenticationStatement</code>,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>AuthorizationDecisionStatement</code> and
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>AttributeStatement</code>. Each Assertion can have
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * multiple type of statements in it.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception SAMLException if there is an error in processing input.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Assertion(String assertionID,java.lang.String issuer,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Date issueInstant, Conditions conditions, Advice advice,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster super(assertionID, issuer, issueInstant, conditions, advice,statements);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the advice of an assertion.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return <code>Advice</code> object containing advice information of the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * assertion.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster protected AdviceBase createAdvice(Element adviceElement)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster createAuthorizationDecisionStatement(Element authDecisionElement)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return new AuthorizationDecisionStatement(authDecisionElement);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster createAuthenticationStatement(Element authenticationElement)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return new AuthenticationStatement(authenticationElement);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster createAttributeStatement(Element attributeElement)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return new AttributeStatement(attributeElement);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster createAssertionIDReference(Element assertionIDRefElement)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return new AssertionIDReference(assertionIDRefElement);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster createAssertionIDReference(String assertionID) throws SAMLException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster createConditions(Element conditionsElement) throws SAMLException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster protected boolean processUnknownElement(Element element)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtils.debug.message("Assertion.processUnknownElement:");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return false;