Package net.shibboleth.idp.profile.impl
Class ResolveAttributes
- All Implemented Interfaces:
Component,DestructableComponent,InitializableComponent,ProfileAction,Aware,MessageSource,MessageSourceAware,Action
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 Summary
FieldsModifier and TypeFieldDescriptionStrategy used to locate or create theAttributeContextto populate.private final ReloadableService<AttributeResolver>Service used to get the resolver used to fetch attributes.private Function<ProfileRequestContext,Collection<String>> Strategy used to determine the attributes to resolve.private booleanWhether to create and populateAttributeResolutionContext.private Function<ProfileRequestContext,String> Strategy used to locate the identity of the issuer associated with the attribute resolution.private final org.slf4j.LoggerClass logger.private booleanWhether to treat resolver errors as equivalent to resolving no attributes.private Function<ProfileRequestContext,String> Strategy used to locate the principal name associated with the attribute resolution.private Function<ProfileRequestContext,String> Strategy used to locate the identity of the recipient associated with the attribute resolution.private Consumer<AttributeResolutionContext>Hook for adjusting/adding to resolution context.private StringLabel distinguishing different "types" of attribute resolution for use in resolver. -
Constructor Summary
ConstructorsConstructorDescriptionResolveAttributes(ReloadableService<AttributeResolver> resolverService) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddoExecute(ProfileRequestContext profileRequestContext) protected booleandoPreExecute(ProfileRequestContext profileRequestContext) private voidpopulateResolutionContext(ProfileRequestContext profileRequestContext, AttributeResolutionContext resolutionContext) Fill in the resolution context data.voidSet the strategy used to locate or create theAttributeContextto populate.voidSet a strategy to use to obtain the names of the attributes to resolve.voidsetAttributesToResolve(Collection<String> attributeIds) Set the attribute IDs to pass into the resolver.voidsetCreateResolutionContext(boolean flag) Set whether to create theAttributeResolutionContextinternally.voidSet the strategy used to lookup the issuer for this attribute resolution.voidsetMaskFailures(boolean flag) Set whether to treat resolution failure as equivalent to resolving no attributes.voidSet the strategy used to locate the principal name for this attribute resolution.voidSet the strategy used to lookup the recipient for this attribute resolution.voidSet optional hook for decorating or adding to resolution context.voidsetResolutionLabel(String label) Set the optional "contextual" label associated with this attribute resolution.Methods inherited from class net.shibboleth.idp.profile.AbstractProfileAction
doExecute, execute, getBean, getBean, getMessage, getMessage, getMessage, getParameter, getParameter, getProfileContextLookupStrategy, getRequestContext, getResult, setMessageSource, setProfileContextLookupStrategyMethods inherited from class org.opensaml.profile.action.AbstractConditionalProfileAction
getActivationCondition, setActivationConditionMethods inherited from class org.opensaml.profile.action.AbstractProfileAction
doPostExecute, doPostExecute, ensureHttpServletRequest, ensureHttpServletResponse, execute, getHttpServletRequest, getHttpServletRequestSupplier, getHttpServletResponse, getHttpServletResponseSupplier, getLogPrefix, isPreExecuteCalled, setHttpServletRequestSupplier, setHttpServletResponseSupplierMethods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent
checkComponentActive, checkSetterPreconditions, destroy, doDestroy, doInitialize, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException, initialize, isDestroyed, isInitializedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.shibboleth.shared.component.InitializableComponent
initialize, isInitialized
-
Field Details
-
log
@Nonnull private final org.slf4j.Logger logClass logger. -
attributeResolverService
Service used to get the resolver used to fetch attributes. -
issuerLookupStrategy
Strategy used to locate the identity of the issuer associated with the attribute resolution. -
recipientLookupStrategy
Strategy used to locate the identity of the recipient associated with the attribute resolution. -
principalNameLookupStrategy
Strategy used to locate the principal name associated with the attribute resolution. -
attributeContextCreationStrategy
Strategy used to locate or create theAttributeContextto populate. -
attributesLookupStrategy
Strategy used to determine the attributes to resolve. -
resolutionContextDecorator
Hook for adjusting/adding to resolution context. -
maskFailures
private boolean maskFailuresWhether to treat resolver errors as equivalent to resolving no attributes. -
resolutionLabel
Label distinguishing different "types" of attribute resolution for use in resolver. -
createResolutionContext
private boolean createResolutionContextWhether to create and populateAttributeResolutionContext.
-
-
Constructor Details
-
Method Details
-
setIssuerLookupStrategy
Set the strategy used to lookup the issuer for this attribute resolution.- Parameters:
strategy- lookup strategy
-
setRecipientLookupStrategy
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 theAttributeContextto 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
Set the attribute IDs to pass into the resolver.- Parameters:
attributeIds- attribute ID collection
-
setResolutionContextDecorator
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
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 theAttributeResolutionContextinternally.Defaults to 'true', disable to allow external creation of the context.
- Parameters:
flag- flag to set
-
doPreExecute
- Overrides:
doPreExecutein classAbstractConditionalProfileAction
-
doExecute
- Overrides:
doExecutein classAbstractProfileAction
-
populateResolutionContext
private void populateResolutionContext(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull AttributeResolutionContext resolutionContext) Fill in the resolution context data.- Parameters:
profileRequestContext- current profile request contextresolutionContext- context to populate
-