public interface PdpEngine
Modifier and Type | Method and Description |
---|---|
DecisionResult |
evaluate(DecisionRequest request)
Generic API (serialization-format-agnostic) for evaluating an individual decision request (see Multiple Decision Profile of XACML for the concept of "Individual Decision Request").
|
<INDIVIDUAL_DECISION_REQ_T extends DecisionRequest> |
evaluate(List<INDIVIDUAL_DECISION_REQ_T> requests)
Generic API (serialization-format-agnostic) for evaluating multiple individual decision requests (see Multiple Decision Profile of XACML for the concept of "Individual Decision Request"), i.e.
|
Iterable<PrimaryPolicyMetadata> |
getApplicablePolicies()
Get the PDP engine's root policy and policies referenced - directly or indirectly - from the root policy, independent from the evaluation context, i.e.
|
DecisionRequestBuilder<?> |
newRequestBuilder(int expectedNumOfAttributeCategories,
int expectedTotalNumOfAttributes)
Gets the PDP-engine-specific individual decision request builder.
|
DecisionRequestBuilder<?> newRequestBuilder(int expectedNumOfAttributeCategories, int expectedTotalNumOfAttributes)
expectedNumOfAttributeCategories
- expected number of attribute categories in the request. This helps the implementation to allocate the right amount of memory and limit memory waste. Use negative value if unknown.expectedTotalNumOfAttributes
- expected total number of attributes (over all categories). This helps the implementation to allocate the right amount of memory and limit memory waste. Use negative value if unknown.DecisionResult evaluate(DecisionRequest request)
This method DOES NOT use any DecisionRequestPreprocessor
or any DecisionResultPostprocessor
. (Only based on core
PDP engine.)
This method does not throw any exception but may still return an Indeterminate result if an error occurred. Therefore, clients should check whether ==
DecisionType#INDETERMINATE
, in which case they can get more error info from ExtendedDecision.getCauseForIndeterminate()
).
request
- Individual Decision Request, as defined in the XACML Multiple Decision Profile (also mentioned in the Hierarchical Resource Profile)<INDIVIDUAL_DECISION_REQ_T extends DecisionRequest> Collection<Map.Entry<INDIVIDUAL_DECISION_REQ_T,? extends DecisionResult>> evaluate(List<INDIVIDUAL_DECISION_REQ_T> requests) throws IndeterminateEvaluationException
This method DOES NOT use any DecisionRequestPreprocessor
or any DecisionResultPostprocessor
. (Only based on core
PDP engine.)
If the PDP uses any remote cache/database service, it should send all decision requests in the same service request and get all existing cache results in the service response, for performance reasons.
requests
- Individual Decision Requests (see Multiple Decision Profile of XACML for the concept of "Individual Decision Request")IndeterminateEvaluationException
- error occurred preventing any request evaluation. (This error is not specific to a particular decision request. Such request-specific error results in a Indeterminate decision
result with error cause available via ExtendedDecision.getCauseForIndeterminate()
)Iterable<PrimaryPolicyMetadata> getApplicablePolicies()
Copyright © 2012–2020. All rights reserved.