Package net.shibboleth.idp.plugin.authn.webauthn.admin.impl

# Class MultiPredicateAccessPredicate

java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
net.shibboleth.shared.component.AbstractIdentifiedInitializableComponent
net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent
net.shibboleth.idp.plugin.authn.webauthn.admin.impl.MultiPredicateAccessPredicate

All Implemented Interfaces:
  `Predicate<ProfileRequestContext>`, `Component`, `DestructableComponent`, `IdentifiableComponent`, `IdentifiedComponent`, `InitializableComponent`

public class MultiPredicateAccessPredicate extends AbstractIdentifiableInitializableComponent implements Predicate<ProfileRequestContext>
Access control implementation based on a `List` of predicates over a `ProfileRequestContext`. Iteration over the predicates terminates when one returns 'false'. If no predicate returns 'false', access is allowed.

Since:
  1.1.0

## Field Summary

Fields
Modifier and Type
Field
Description
`private final List<Predicate<ProfileRequestContext>>`
`predicates`
List of predicates to evaluate.

## Constructor Summary

Constructors
Constructor
Description
`MultiPredicateAccessPredicate(List<Predicate<ProfileRequestContext>> predicateList)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`test(ProfileRequestContext prc)`

### Methods inherited from class net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent

`setId`

### Methods inherited from class net.shibboleth.shared.component.AbstractIdentifiedInitializableComponent

`doInitialize, ensureId, getId, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException`

### Methods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent

`checkComponentActive, checkSetterPreconditions, destroy, doDestroy, initialize, isDestroyed, isInitialized`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface net.shibboleth.shared.component.IdentifiedComponent

`getId`

### Methods inherited from interface java.util.function.Predicate

`and, negate, or`

## Field Details

### predicates

@Nonnull @NotEmpty @NotLive @Unmodifiable private final List<Predicate<ProfileRequestContext>> predicates
List of predicates to evaluate.

## Constructor Details

### MultiPredicateAccessPredicate

public MultiPredicateAccessPredicate(@Nonnull @NotEmpty List<Predicate<ProfileRequestContext>> predicateList)
Constructor.

Parameters:
  `predicateList` - the list of predicates to evaluate.

## Method Details

### test

public boolean test(ProfileRequestContext prc)

Specified by:
  `test` in interface `Predicate<ProfileRequestContext>`