This class is responsible for creating the XACML Policy Decision Point (PDP) for a database instance. The PDP is the entity that accepts access requests and makes a decision whether the access is allowed. The PDP returns a decision to the requesting entity (called a Policy Enforcement Point, or PEP). This decision is either Permit, Deny, Indeterminate, or Not Applicable. Not Applicable occurs if no policy could be found that applied to the request. Indeterminate occurs if there was an error processing the request or the request was invalid.
This class also provides convenience methods for most uses. The main method is evaluate
, which will throw a PermissionDeniedException
unless the decision was Permit and no Obligations were required. An Obligation is a conditional access decision. If the PEP cannot perform the Obligation, then it cannot accept the decision.
RequestHelper
provides methods for creating a RequestCtx
, which is then passed to the PDP
either indirectly by calling evaluate
or directly by calling getPDP().evaluate()
. The first method can probably be used in most cases, while the second one allows more flexibility in handling the response.
@see XACMLConstants
@see ExistPolicyModule
@see RequestHelper