All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.att.research.xacmlatt.pdp.eval.EvaluationContext Maven / Gradle / Ivy

The newest version!
/*
 *
 *          Copyright (c) 2013,2019  AT&T Knowledge Ventures
 *                     SPDX-License-Identifier: MIT
 */
package com.att.research.xacmlatt.pdp.eval;

import com.att.research.xacml.api.IdReferenceMatch;
import com.att.research.xacml.api.Request;
import com.att.research.xacml.api.pip.PIPException;
import com.att.research.xacml.api.pip.PIPFinder;
import com.att.research.xacml.api.pip.PIPRequest;
import com.att.research.xacml.api.pip.PIPResponse;
import com.att.research.xacml.api.trace.TraceEngine;
import com.att.research.xacmlatt.pdp.policy.Policy;
import com.att.research.xacmlatt.pdp.policy.PolicyDef;
import com.att.research.xacmlatt.pdp.policy.PolicyFinderResult;
import com.att.research.xacmlatt.pdp.policy.PolicySet;

/**
 * EvaluationContext provides the interface that the PDP uses to evaluate its set of Policies and PolicySets against
 * a {@link com.att.research.xacml.api.Request}.
 * 
 * @author car
 * @version $Revision: 1.2 $
 */
public interface EvaluationContext extends PIPFinder, TraceEngine {
	/**
	 * Gets the original Request provided to the ATTPDPEngine's decide method.
	 * 
	 * @return the Request provided to the ATTPDPEngine's decide method.
	 */
	public Request getRequest();
	
	/**
	 * Gets the root {@link com.att.research.xacmlatt.pdp.policy.PolicyDef} from the policy store
	 * configured by the particular implementation of the PolicyFinderFactory class.
	 * 
	 * @return a PolicyFinderResult with the root PolicyDef
	 */
	public abstract PolicyFinderResult getRootPolicyDef();
	
	/**
	 * Gets the {@link com.att.research.xacmlatt.pdp.policy.Policy} that matches the given {@link com.att.research.xacml.api.IdReferenceMatch}.
	 * 
	 * @param idReferenceMatch the IdReferenceMatch to search for
	 * @return a PolicyFinderResult with the Policy matching the given IdReferenceMatch
	 */
	public abstract PolicyFinderResult getPolicy(IdReferenceMatch idReferenceMatch);
	
	/**
	 * Gets the {@link com.att.research.xacmlatt.pdp.policy.PolicySet} that matches the given {@link com.att.research.xacml.api.IdReferenceMatch}.
	 * 
	 * @param idReferenceMatch the IdReferenceMatch to search for
	 * @return a PolicyFinderResult with the PolicySet matching the given IdReferenceMatch.
	 */
	public abstract PolicyFinderResult getPolicySet(IdReferenceMatch idReferenceMatch);
	
	/**
	 * Gets the {@link com.att.research.xacml.api.pip.PIPResponse} containing {@link com.att.research.xacml.api.Attribute}s that
	 * match the given {@link com.att.research.xacml.api.pip.PIPRequest} from this EvaluationContext.
	 * 
	 * @param pipRequest the PIPRequest specifying which Attributes to retrieve
	 * @return the PIPResponse containing the {@link com.att.research.xacml.api.Status} and Attributes
	 * @throws PIPException PIP exception
	 */
	public PIPResponse getAttributes(PIPRequest pipRequest) throws PIPException;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy