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: AuthorizationDecisionStatementBase.java,v 1.2 2008/06/25 05:47:32 qcheng Exp $
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml.common.SAMLUtilsCommon;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml.common.SAMLConstants;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml.common.SAMLException;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml.common.SAMLRequesterException;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The <code>AuthorizationDecisionStatement</code> element supplies a statement
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * by the issuer that the request for access by the specified subject to the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * specified resource has resulted in the specified decision on the basis of
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * some optionally specified evidence.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * This class is an abstract base class for all AuthorizationDecisionStatement
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * implementations and encapsulates common functionality.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @supported.all.api
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpublic abstract class AuthorizationDecisionStatementBase
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *The <code>DecisionType</code> is an inner class defining constants for the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *type of Decisions than can be conveyed by an
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *<code>AuthorizationDecisionStatement </code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *<br>1 implies <code>PERMIT</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *<br>2 implies <code>DENY</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *<br>3 implies <code>INDETERMINATE </code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *<br>4 implies <code>NOT_SUPPORTED</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The specified action is permitted.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The specified action is denied.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The issuer cannot determine whether the specified action is
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * permitted or denied.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The specified action is not supported.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private int _decision = DecisionType.NOT_SUPPORTED;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *Default constructor
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster protected AuthorizationDecisionStatementBase() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Constructs an <code>AuthorizationStatement</code> element from an
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * existing XML block.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param element representing a DOM tree element
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception SAMLException if there is an error in the sender or in
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * the element definition.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public AuthorizationDecisionStatementBase(Element element)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // make sure input is not null
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "AuthorizationDecisionStatement: null input.");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtilsCommon.bundle.getString("nullInput"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // check if it's an AuthorizationDecisionStatement
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster boolean valid = SAMLUtilsCommon.checkStatement(element,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "AuthorizationDecisionStatement");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "AuthorizationDecisionStatement: Wrong input.");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtilsCommon.bundle.getString("wrongInput"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster //handle the attributes of AuthorizationDecisionStatement
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster NamedNodeMap atts = ((Node)element).getAttributes();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (att.getNodeType() == Node.ATTRIBUTE_NODE) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (attName == null || attName.length() == 0) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtilsCommon.debug.message("AuthorizationDecision" +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "Statement: Attribute name is either null or empty.");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtilsCommon.bundle.getString("nullInput"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (_resource == null || _resource.length() == 0) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "AuthorizationDecision" +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "Statement: Resource is null or empty.");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "missingAttributeValue"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String decisionStr = ((Attr)att).getValue().trim();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (decisionStr == null || decisionStr.length() == 0) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "AuthorizationDecision" +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "Statement: Decision is null or empty.");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "missingAttributeValue"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "AuthorizationDecision" +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "Statement: The type of decision is illegal!");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtilsCommon.bundle.getString("wrongInput"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } // end of for loop
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // Resource is required
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (_resource == null || _resource.length() == 0) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "AuthorizationDecisionStatement: "+
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "Resource is required attribute.");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtilsCommon.bundle.getString("missingAttribute"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // Decision is required
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "AuthorizationDecisionStatement: "+
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "Decision is required attribute.");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtilsCommon.bundle.getString("missingAttribute"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster //Handle the children elements of AuthorizationDecisionStatement
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((tagName == null) || tagName.length() == 0 ||
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "AuthorizationDecision" +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "Statement: The tag name or tag namespace" +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster " of child element is either null or empty.");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtilsCommon.bundle.getString("nullInput"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster tagNS.equals(SAMLConstants.assertionSAMLNameSpaceURI)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "AuthorizationDecisionStatement: "+
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster " should only contain one subject");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtilsCommon.bundle.getString("oneElement"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster tagNS.equals(SAMLConstants.assertionSAMLNameSpaceURI)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster + "Statment: failed to add to the"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster + " AuthorityBinding list.");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "addListError"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster tagNS.equals(SAMLConstants.assertionSAMLNameSpaceURI)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster _evidence = createEvidence((Element)currentNode);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "AuthorizationDecisionStatement: "+
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtilsCommon.bundle.getString("wrongInput"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } // end of if (currentNode.getNodeType() == Node.ELEMENT_NODE)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } // end of for loop
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } // end of if (nodeCount > 0)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // check if the subject is null
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtilsCommon.debug.message("AuthorizationDecisionStatement:"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster + " should contain exactly one subject.");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtilsCommon.bundle.getString("missingElement"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster //check if the Action is null
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtilsCommon.debug.message("AuthorizationDecisionStatement:"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster + " should at least contain one Action.");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtilsCommon.bundle.getString("missingElement"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Constructs an instance of <code>AuthorizationDecisionStatement</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param subject (required) A Subject object
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param resource (required) A String identifying the resource to which
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * access authorization is sought.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param decision (required) The decision rendered by the issuer with
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * respect to the specified resource. The value is of the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>DecisionType</code> simple type.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param action (required) A List of Action objects specifying the set of
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * actions authorized to be performed on the specified resource.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param evidence (optional) An Evidence object representing a set of
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * assertions that the issuer replied on in making decisions.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception SAMLException if there is an error in the sender.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public AuthorizationDecisionStatementBase(Subject subject, String resource,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster int decision, List action, EvidenceBase evidence)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // check if the subject is null
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "AuthorizationDecisionStatement:" +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "missing the subject.");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtilsCommon.bundle.getString("missingElement"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // Resource is required
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (resource == null || resource.length() == 0) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "AuthorizationDecisionStatement: "+
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "resource is required attribute");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtilsCommon.bundle.getString("missingAttribute"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // check if the decision is null
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "AuthorizationDecisionStatement:" +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "The type of decision is illegal.");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtilsCommon.bundle.getString("wrongInput"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // Actions is required
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "AuthorizationDecisionStatement: "+
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "Action is required.");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtilsCommon.bundle.getString("missingElement"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Constructs a <code>AuthorizationDecisionStatement</code> instance.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *@param subject (required) A Subject object
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *@param resource (required) A String identifying the resource to which
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * access authorization is sought.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *@param decision (required) The decision rendered by the issuer with
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * respect to the specified resource. The value is of the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>DecisionType</code> simple type.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *@param action (required) A List of Action objects specifying the set of
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * actions authorized to be performed on the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * specified resource.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *@exception SAMLException if there is an error in the sender.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public AuthorizationDecisionStatementBase(Subject subject,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String resource, int decision, List action) throws SAMLException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // check if the subject is null
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "AuthorizationDecisionStatement:" +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "missing the subject.");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtilsCommon.bundle.getString("missingElement"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // Resource is required
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (resource == null || resource.length() == 0) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "AuthorizationDecisionStatement: "+
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "resource is required attribute");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtilsCommon.bundle.getString("missingAttribute"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // check if the decision is null
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "AuthorizationDecisionStatement:" +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "The type of decision is illegal.");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtilsCommon.bundle.getString("wrongInput"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // Action is required
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "AuthorizationDecisionStatement: "+
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "Action is required.");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SAMLUtilsCommon.bundle.getString("missingElement"));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Creates appropriate Evidence Instance
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param evidenceElement the Evidence Element
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the Evidence Object
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster protected abstract EvidenceBase createEvidence(Element evidenceElement)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Creates appropriate Subject Instance
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param subjectElement the Subject Element
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the Subject Object
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster protected abstract Subject createSubject(Element subjectElement)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Creates appropriate Action Instance
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param actionElement the Action Element
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the Action Object
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster protected abstract Action createAction(Element actionElement)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the action(s) from <code>AuthorizationStatement</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return A List of Action object(s) specifying the set of actions
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * authorized to be performed on the specified resource.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the resource from <code>AuthorizationStatement</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return A String identifying the resource to which access authorization
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * is sought.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the decision for <code>AuthorizationStatement</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return The decision string such as
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>permit</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>deny</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>indetereminate</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns the real type of statement. This method returns
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>Statement.AUTHORIZATION_DECISION_STATEMENT</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return <code>Statement.AUTHORIZATION_DECISION_STATEMENT</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return Statement.AUTHORIZATION_DECISION_STATEMENT;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns a String representation of the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>AuthorizationStatement</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return A String representation of the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code><AuthorizationDecisionStatement</code> element.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return toString(true, false);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns a String representation of the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>AuthorizationStatement</code>.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param includeNS Determines whether or not the namespace qualifier is
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * 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 * @return A String representation of the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code><AuthorizationDecisionStatement></code> element.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String toString(boolean includeNS, boolean declareNS) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster append(uri).append(" Resource=\"").append(_resource).
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster append("\" Decision=\"").append(decisionTypeConvert(_decision)).
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster result.append(this._subject.toString(includeNS, false));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster result.append(_evidence.toString(includeNS, false));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *Converts the number to the mapping string
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *@param number - an int
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *@return a mapping string
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private String decisionTypeConvert(int number){
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster case DecisionType.PERMIT : result = "Permit"; break;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster case DecisionType.DENY: result = "Deny"; break ;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster case DecisionType.INDETERMINATE: result = "Indeterminate"; break ;