Class ObligationService
- java.lang.Object
-
- org.opensaml.xacml.ctx.provider.impl.ObligationService
-
public class ObligationService extends Object
A service for evaluating the obligations within a context.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private classObligationService.ObligationHandlerComparatorComparator used to order obligation handlers by precedence.
-
Field Summary
Fields Modifier and Type Field Description private Set<BaseObligationHandler>obligationHandlersRegistered obligation handlers.private ReentrantReadWriteLockrwLockRead/write lock around the registered obligation handlers.
-
Constructor Summary
Constructors Constructor Description ObligationService()Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddObligationhandler(Collection<BaseObligationHandler> handlers)Adds a collection of obligation handler to the list of registered handlers This method waits until a write lock is obtained for the set of registered obligation handlers.voidaddObligationhandler(BaseObligationHandler handler)Adds an obligation handler to the list of registered handlers This method waits until a write lock is obtained for the set of registered obligation handlers.Set<BaseObligationHandler>getObligationHandlers()Gets the registered obligation handlers.protected Map<String,ObligationType>preprocessObligations(ObligationProcessingContext context)Preprocesses the obligations returned within the result.voidprocessObligations(ObligationProcessingContext context)Processes the obligations within the effective XACML policy.voidremoveObligationHandler(BaseObligationHandler handler)Removes an obligation handler from the list of registered handlers This method waits until a write lock is obtained for the set of registered obligation handlers.
-
-
-
Field Detail
-
rwLock
private ReentrantReadWriteLock rwLock
Read/write lock around the registered obligation handlers.
-
obligationHandlers
private Set<BaseObligationHandler> obligationHandlers
Registered obligation handlers.
-
-
Method Detail
-
getObligationHandlers
public Set<BaseObligationHandler> getObligationHandlers()
Gets the registered obligation handlers.- Returns:
- registered obligation handlers
-
addObligationhandler
public void addObligationhandler(BaseObligationHandler handler)
Adds an obligation handler to the list of registered handlers This method waits until a write lock is obtained for the set of registered obligation handlers.- Parameters:
handler- the handler to add to the list of registered handlers.
-
addObligationhandler
public void addObligationhandler(Collection<BaseObligationHandler> handlers)
Adds a collection of obligation handler to the list of registered handlers This method waits until a write lock is obtained for the set of registered obligation handlers.- Parameters:
handlers- the collection of handlers to add to the list of registered handlers.
-
removeObligationHandler
public void removeObligationHandler(BaseObligationHandler handler)
Removes an obligation handler from the list of registered handlers This method waits until a write lock is obtained for the set of registered obligation handlers.- Parameters:
handler- the handler to remove from the list of registered handlers.
-
processObligations
public void processObligations(ObligationProcessingContext context) throws ObligationProcessingException
Processes the obligations within the effective XACML policy. This method waits until a read lock is obtained for the set of registered obligation handlers.- Parameters:
context- current processing context- Throws:
ObligationProcessingException- thrown if there is a problem evaluating an obligation
-
preprocessObligations
protected Map<String,ObligationType> preprocessObligations(ObligationProcessingContext context)
Preprocesses the obligations returned within the result. This preprocessing determines the active effect, based onResultType.getDecision(), and creates an index that maps obligation IDs to theObligationTypereturned by the PDP.- Parameters:
context- current processing context- Returns:
- preprocessed obligations
-
-