com.att.research.xacmlatt.pdp.eval.EvaluationContext Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of xacml-pdp Show documentation
Show all versions of xacml-pdp Show documentation
ATT reference implementation of XACML PDP engine
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 Attribute
s to retrieve
* @return the PIPResponse
containing the {@link com.att.research.xacml.api.Status} and Attribute
s
* @throws PIPException PIP exception
*/
public PIPResponse getAttributes(PIPRequest pipRequest) throws PIPException;
}