Class ResolveAttributes

All Implemented Interfaces:
Component, DestructableComponent, InitializableComponent, ProfileAction, Aware, MessageSource, MessageSourceAware, Action

public final class ResolveAttributes extends AbstractProfileAction
Action that invokes the AttributeResolver for the current request.
Event:
EventIds.PROCEED_EVENT_ID, IdPEventIds.UNABLE_RESOLVE_ATTRIBS
Postcondition:
If resolution is successful, an AttributeContext is created with the results.
  • Field Details

  • Constructor Details

    • ResolveAttributes

      public ResolveAttributes(@Nonnull ReloadableService<AttributeResolver> resolverService)
      Constructor.
      Parameters:
      resolverService - resolver used to fetch attributes
  • Method Details

    • setRelyingPartyContextLookupStrategy

      public void setRelyingPartyContextLookupStrategy(@Nonnull Function<ProfileRequestContext,RelyingPartyContext> strategy)
      Set the strategy used to locate the RelyingPartyContext associated with a given ProfileRequestContext.
      Parameters:
      strategy - strategy used to locate the RelyingPartyContext associated with a given ProfileRequestContext
      Since:
      5.2.0
    • setIssuerLookupStrategy

      public void setIssuerLookupStrategy(@Nullable Function<ProfileRequestContext,String> strategy)
      Set the strategy used to lookup the issuer for this attribute resolution.
      Parameters:
      strategy - lookup strategy
    • setRecipientLookupStrategy

      public void setRecipientLookupStrategy(@Nullable Function<ProfileRequestContext,String> strategy)
      Set the strategy used to lookup the recipient for this attribute resolution.
      Parameters:
      strategy - lookup strategy
    • setPrincipalNameLookupStrategy

      public void setPrincipalNameLookupStrategy(@Nullable Function<ProfileRequestContext,String> strategy)
      Set the strategy used to locate the principal name for this attribute resolution.
      Parameters:
      strategy - lookup strategy
    • setAttributeContextCreationStrategy

      public void setAttributeContextCreationStrategy(@Nonnull Function<ProfileRequestContext,AttributeContext> strategy)
      Set the strategy used to locate or create the AttributeContext to populate.
      Parameters:
      strategy - lookup/creation strategy
    • setAttributesLookupStrategy

      public void setAttributesLookupStrategy(@Nonnull Function<ProfileRequestContext,Collection<String>> strategy)
      Set a strategy to use to obtain the names of the attributes to resolve.
      Parameters:
      strategy - lookup strategy
    • setAttributesToResolve

      public void setAttributesToResolve(@Nonnull Collection<String> attributeIds)
      Set the attribute IDs to pass into the resolver.
      Parameters:
      attributeIds - attribute ID collection
    • setResolutionContextDecorator

      public void setResolutionContextDecorator(@Nullable Consumer<AttributeResolutionContext> decorator)
      Set optional hook for decorating or adding to resolution context.
      Parameters:
      decorator - decorator hook
      Since:
      4.2.0
    • setMaskFailures

      public void setMaskFailures(boolean flag)
      Set whether to treat resolution failure as equivalent to resolving no attributes.

      This matches the behavior of V2.

      Parameters:
      flag - flag to set
    • setResolutionLabel

      public void setResolutionLabel(@Nullable String label)
      Set the optional "contextual" label associated with this attribute resolution.
      Parameters:
      label - label to set
      Since:
      3.4.0
    • setCreateResolutionContext

      public void setCreateResolutionContext(boolean flag)
      Set whether to create the AttributeResolutionContext internally.

      Defaults to 'true', disable to allow external creation of the context.

      Parameters:
      flag - flag to set
    • doPreExecute

      protected boolean doPreExecute(@Nonnull ProfileRequestContext profileRequestContext)
      Overrides:
      doPreExecute in class AbstractConditionalProfileAction
    • doExecute

      protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext)
      Overrides:
      doExecute in class AbstractProfileAction
    • populateResolutionContext

      private void populateResolutionContext(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull AttributeResolutionContext resolutionContext)
      Fill in the resolution context data.
      Parameters:
      profileRequestContext - current profile request context
      resolutionContext - context to populate