The predicate bean named shibboleth.Conditions.RelyingPartyId provides a simple way to make decisions based on the name/entityID of the relying party of a request. This isn't necessarily scalable but works well for simple one-off exceptions.

It is an abstract parent bean, so has to be appropriately constructed with arguments. Three variant forms are provided:

  1. By name: one constructor argument named candidate is supplied. This is a String value naming a single entity.

  2. By names: one constructor argument named candidates is supplied. This is a list of String values for multiple entities.

  3. By indirection: one constructor argument named pred is supplied. This is a bean itself implementing Predicate<String> which is applied to the name of the relying party.

The latter option is an example of "adaptation" turning one kind of predicate into another.


Examples for all three forms can be found here.