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 theAttributeContext
to 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 boolean
Whether 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.Logger
Class logger.private boolean
Whether 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 String
Label distinguishing different "types" of attribute resolution for use in resolver.Transcoder registry service object. -
Constructor Summary
ConstructorsConstructorDescriptionResolveAttributes
(ReloadableService<AttributeResolver> resolverService) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
doExecute
(ProfileRequestContext profileRequestContext) protected boolean
doPreExecute
(ProfileRequestContext profileRequestContext) private void
populateResolutionContext
(ProfileRequestContext profileRequestContext, AttributeResolutionContext resolutionContext) Fill in the resolution context data.void
Set the strategy used to locate or create theAttributeContext
to populate.void
Set a strategy to use to obtain the names of the attributes to resolve.void
setAttributesToResolve
(Collection<String> attributeIds) Set the attribute IDs to pass into the resolver.void
setCreateResolutionContext
(boolean flag) Set whether to create theAttributeResolutionContext
internally.void
Set the strategy used to lookup the issuer for this attribute resolution.void
setMaskFailures
(boolean flag) Set whether to treat resolution failure as equivalent to resolving no attributes.void
Set the strategy used to locate the principal name for this attribute resolution.void
Set the strategy used to lookup the recipient for this attribute resolution.void
Set optional hook for decorating or adding to resolution context.void
setResolutionLabel
(String label) Set the optional "contextual" label associated with this attribute resolution.void
Sets the registry of transcoding rules to apply to supply attribute display metadata.Methods inherited from class net.shibboleth.idp.profile.AbstractProfileAction
doExecute, execute, getBean, getBean, getMessage, getMessage, getMessage, getParameter, getParameter, getProfileContextLookupStrategy, getRequestContext, getResult, setMessageSource, setProfileContextLookupStrategy
Methods inherited from class org.opensaml.profile.action.AbstractConditionalProfileAction
getActivationCondition, setActivationCondition
Methods inherited from class org.opensaml.profile.action.AbstractProfileAction
doPostExecute, doPostExecute, execute, getHttpServletRequest, getHttpServletRequestSupplier, getHttpServletResponse, getHttpServletResponseSupplier, getLogPrefix, setHttpServletRequest, setHttpServletRequestSupplier, setHttpServletResponse, setHttpServletResponseSupplier
Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
destroy, doDestroy, doInitialize, 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.utilities.java.support.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. -
transcoderRegistry
Transcoder registry service object. -
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 theAttributeContext
to 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
-
ResolveAttributes
Constructor.- Parameters:
resolverService
- resolver used to fetch attributes
-
-
Method Details
-
setTranscoderRegistry
public void setTranscoderRegistry(@Nullable ReloadableService<AttributeTranscoderRegistry> registry) Sets the registry of transcoding rules to apply to supply attribute display metadata.- Parameters:
registry
- registry service interface
-
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 theAttributeContext
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
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 theAttributeResolutionContext
internally.Defaults to 'true', disable to allow external creation of the context.
- Parameters:
flag
- flag to set
-
doPreExecute
- Overrides:
doPreExecute
in classAbstractConditionalProfileAction
-
doExecute
- Overrides:
doExecute
in 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
-