Package net.shibboleth.idp.authn.impl
Class AttributeSourcedSubjectCanonicalization
java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
org.opensaml.profile.action.AbstractProfileAction
org.opensaml.profile.action.AbstractConditionalProfileAction
net.shibboleth.idp.profile.AbstractProfileAction
net.shibboleth.idp.authn.AbstractSubjectCanonicalizationAction
net.shibboleth.idp.authn.impl.AttributeSourcedSubjectCanonicalization
- All Implemented Interfaces:
Component,DestructableComponent,InitializableComponent,ProfileAction,Aware,MessageSource,MessageSourceAware,Action
An action that extracts a resolved
IdPAttribute value from an AttributeContext child obtained via
lookup function (by default a child of the SubjectCanonicalizationContext), and uses it as the result
of subject canonicalization.
This action operates on a set of previously resolved attributes that are presumed to have been generated based
in some fashion on the content of the SubjectCanonicalizationContext.
String and scoped attribute values are supported.
- Event:
EventIds.PROCEED_EVENT_ID,AuthnEventIds.INVALID_SUBJECT- Precondition:
ProfileRequestContext.getSubcontext(SubjectCanonicalizationContext.class) != null
- Postcondition:
SubjectCanonicalizationContext.getPrincipalName() != null || SubjectCanonicalizationContext.getException() != null
-
Field Summary
FieldsModifier and TypeFieldDescriptionLookup strategy forAttributeContextto read from.private AttributeContextThe context to read from.Ordered list of attributes to look for and read from.private charDelimiter to use for scoped attribute serialization.private final org.slf4j.LoggerClass logger.private booleanWhether to also check the original Subject forIdPAttributePrincipals.private Map<String,IdPAttribute> Indexed attributes pulled from subject. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddoExecute(ProfileRequestContext profileRequestContext, SubjectCanonicalizationContext c14nContext) Performs this authentication action.protected voidprotected booleandoPreExecute(ProfileRequestContext profileRequestContext, SubjectCanonicalizationContext c14nContext) Performs this c14n action's pre-execute step.private StringfindValue(IdPAttribute attribute) Check for a compatible value in the input attribute.voidSet the lookup strategy for theAttributeContextto read from.voidsetAttributeSourceIds(List<String> ids) Set the attribute IDs to read from in order of preference.voidsetResolveFromSubject(boolean flag) Whether to include anyIdPAttributePrincipalobjects found in the inputSubjectwhen searching for a matching attribute ID.voidsetScopedDelimiter(char ch) Set the delimiter to use for serializing scoped attribute values.Methods inherited from class net.shibboleth.idp.authn.AbstractSubjectCanonicalizationAction
applyTransforms, doExecute, doPreExecute, setLookupStrategy, setLowercase, setTransforms, setTrim, setUppercaseMethods 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, 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. -
delimiter
private char delimiterDelimiter to use for scoped attribute serialization. -
resolveFromSubject
private boolean resolveFromSubjectWhether to also check the original Subject forIdPAttributePrincipals. -
subjectSourcedAttributes
Indexed attributes pulled from subject. -
attributeSourceIds
Ordered list of attributes to look for and read from. -
attributeContextLookupStrategy
Lookup strategy forAttributeContextto read from. -
attributeCtx
The context to read from.
-
-
Constructor Details
-
AttributeSourcedSubjectCanonicalization
public AttributeSourcedSubjectCanonicalization()Constructor.
-
-
Method Details
-
setScopedDelimiter
public void setScopedDelimiter(char ch) Set the delimiter to use for serializing scoped attribute values.- Parameters:
ch- delimiter to use
-
setResolveFromSubject
public void setResolveFromSubject(boolean flag) Whether to include anyIdPAttributePrincipalobjects found in the inputSubjectwhen searching for a matching attribute ID.- Parameters:
flag- flag to set- Since:
- 4.1.0
-
setAttributeSourceIds
Set the attribute IDs to read from in order of preference.- Parameters:
ids- attribute IDs to read from
-
setAttributeContextLookupStrategy
public void setAttributeContextLookupStrategy(@Nonnull Function<ProfileRequestContext, AttributeContext> strategy) Set the lookup strategy for theAttributeContextto read from.- Parameters:
strategy- lookup strategy
-
doInitialize
- Overrides:
doInitializein classAbstractInitializableComponent- Throws:
ComponentInitializationException
-
doPreExecute
protected boolean doPreExecute(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull SubjectCanonicalizationContext c14nContext) Performs this c14n action's pre-execute step. Default implementation just returns true iff a subject is set.- Overrides:
doPreExecutein classAbstractSubjectCanonicalizationAction- Parameters:
profileRequestContext- the current IdP profile request contextc14nContext- the current subject canonicalization context- Returns:
- true iff execution should continue
-
doExecute
protected void doExecute(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull SubjectCanonicalizationContext c14nContext) Performs this authentication action. Default implementation throws an exception.- Overrides:
doExecutein classAbstractSubjectCanonicalizationAction- Parameters:
profileRequestContext- the current IdP profile request contextc14nContext- the current subject canonicalization context
-
findValue
Check for a compatible value in the input attribute.- Parameters:
attribute- input attribute- Returns:
- value to use for result, or null
-