Package net.shibboleth.idp.authn
Class AbstractUsernamePasswordCredentialValidator
java.lang.Object
net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
net.shibboleth.utilities.java.support.component.AbstractIdentifiedInitializableComponent
net.shibboleth.idp.authn.AbstractCredentialValidator
net.shibboleth.idp.authn.AbstractUsernamePasswordCredentialValidator
- All Implemented Interfaces:
CredentialValidator
,PrincipalSupportingComponent
,Component
,DestructableComponent
,IdentifiableComponent
,IdentifiedComponent
,InitializableComponent
- Direct Known Subclasses:
HTPasswdCredentialValidator
,JAASCredentialValidator
,KerberosCredentialValidator
,LDAPCredentialValidator
@ThreadSafeAfterInit
public abstract class AbstractUsernamePasswordCredentialValidator
extends AbstractCredentialValidator
An abstract
CredentialValidator
that checks for a UsernamePasswordContext
and delegates
to subclasses to produce a result.- Since:
- 4.0.0
-
Nested Class Summary
Nested classes/interfaces inherited from interface net.shibboleth.idp.authn.CredentialValidator
CredentialValidator.ErrorHandler, CredentialValidator.WarningHandler
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final String
Default prefix for metrics.private final org.slf4j.Logger
Class logger.private boolean
Convert username to lowercase prior to transforms?private Pattern
A regular expression to apply for acceptance testing.private boolean
Whether to remove theUsernamePasswordContext
after successful validation.private boolean
Whether to save the password in the Java Subject's private credentials.Match patterns and replacement strings to apply prior to use.private boolean
Trim username prior to transforms?private boolean
Convert username to uppercase prior to transforms?Lookup strategy for UP context. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected String
applyTransforms
(String input) Apply any configured regular expression replacements to an input value and return the result.protected abstract Subject
doValidate
(ProfileRequestContext profileRequestContext, AuthenticationContext authenticationContext, UsernamePasswordContext usernamePasswordContext, CredentialValidator.WarningHandler warningHandler, CredentialValidator.ErrorHandler errorHandler) Override method for subclasses to use to perform the actual validation.protected Subject
doValidate
(ProfileRequestContext profileRequestContext, AuthenticationContext authenticationContext, CredentialValidator.WarningHandler warningHandler, CredentialValidator.ErrorHandler errorHandler) Override method for subclasses to use to perform the actual validation.protected Subject
populateSubject
(Subject subject, UsernamePasswordContext usernamePasswordContext) Decorate the subject with "standard" content from the validation and clean up as instructed.boolean
Deprecated, for removal: This API element is subject to removal in a future version.boolean
Get whether to save the password in the private credential set.void
setLowercase
(boolean flag) Controls conversion to lowercase prior to applying any transforms.void
setMatchExpression
(Pattern expression) Set a matching expression to apply to the username for acceptance.void
setRemoveContextAfterValidation
(boolean flag) Deprecated, for removal: This API element is subject to removal in a future version.void
setSavePasswordToCredentialSet
(boolean flag) Set whether to save the password in the private credential set.void
setTransforms
(Collection<Pair<String, String>> newTransforms) A collection of regular expression and replacement pairs.void
setTrim
(boolean flag) Controls whitespace trimming prior to applying any transforms.void
setUppercase
(boolean flag) Controls conversion to uppercase prior to applying any transforms.void
setUsernamePasswordContextLookupStrategy
(Function<AuthenticationContext, UsernamePasswordContext> strategy) Set the lookup strategy to locate theUsernamePasswordContext
.Methods inherited from class net.shibboleth.idp.authn.AbstractCredentialValidator
getLogPrefix, getSupportedPrincipals, isAcceptable, populateSubject, setActivationCondition, setId, setSupportedPrincipals, validate
Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractIdentifiedInitializableComponent
doInitialize, getId
Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
destroy, doDestroy, 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.IdentifiedComponent
getId
-
Field Details
-
DEFAULT_METRIC_NAME
Default prefix for metrics.- See Also:
-
log
@Nonnull private final org.slf4j.Logger logClass logger. -
usernamePasswordContextLookupStrategy
@Nonnull private Function<AuthenticationContext,UsernamePasswordContext> usernamePasswordContextLookupStrategyLookup strategy for UP context. -
savePasswordToCredentialSet
private boolean savePasswordToCredentialSetWhether to save the password in the Java Subject's private credentials. -
removeContextAfterValidation
private boolean removeContextAfterValidationWhether to remove theUsernamePasswordContext
after successful validation. -
matchExpression
A regular expression to apply for acceptance testing. -
transforms
Match patterns and replacement strings to apply prior to use. -
uppercase
private boolean uppercaseConvert username to uppercase prior to transforms? -
lowercase
private boolean lowercaseConvert username to lowercase prior to transforms? -
trim
private boolean trimTrim username prior to transforms?
-
-
Constructor Details
-
AbstractUsernamePasswordCredentialValidator
public AbstractUsernamePasswordCredentialValidator()Constructor.
-
-
Method Details
-
setUsernamePasswordContextLookupStrategy
public void setUsernamePasswordContextLookupStrategy(@Nonnull Function<AuthenticationContext, UsernamePasswordContext> strategy) Set the lookup strategy to locate theUsernamePasswordContext
.- Parameters:
strategy
- lookup strategy
-
savePasswordToCredentialSet
public boolean savePasswordToCredentialSet()Get whether to save the password in the private credential set.- Returns:
- whether to save the password in the private credential set
-
setSavePasswordToCredentialSet
public void setSavePasswordToCredentialSet(boolean flag) Set whether to save the password in the private credential set.- Parameters:
flag
- flag to set
-
removeContextAfterValidation
Deprecated, for removal: This API element is subject to removal in a future version.Get whether to remove theUsernamePasswordContext
after it's successfully validated.Defaults to true
- Returns:
- whether to remove the context after successful validation
-
setRemoveContextAfterValidation
@Deprecated(since="4.1.0", forRemoval=true) public void setRemoveContextAfterValidation(boolean flag) Deprecated, for removal: This API element is subject to removal in a future version.Set whether to remove theUsernamePasswordContext
after it's successfully validated.- Parameters:
flag
- flag to set
-
setMatchExpression
Set a matching expression to apply to the username for acceptance.- Parameters:
expression
- a matching expression
-
setTransforms
A collection of regular expression and replacement pairs.- Parameters:
newTransforms
- collection of replacement transforms
-
setUppercase
public void setUppercase(boolean flag) Controls conversion to uppercase prior to applying any transforms.- Parameters:
flag
- uppercase flag
-
setLowercase
public void setLowercase(boolean flag) Controls conversion to lowercase prior to applying any transforms.- Parameters:
flag
- lowercase flag
-
setTrim
public void setTrim(boolean flag) Controls whitespace trimming prior to applying any transforms.- Parameters:
flag
- trim flag
-
doValidate
protected Subject doValidate(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull AuthenticationContext authenticationContext, @Nullable CredentialValidator.WarningHandler warningHandler, @Nullable CredentialValidator.ErrorHandler errorHandler) throws Exception Override method for subclasses to use to perform the actual validation.- Specified by:
doValidate
in classAbstractCredentialValidator
- Parameters:
profileRequestContext
- profile request contextauthenticationContext
- authentication contextwarningHandler
- optional warning handler interfaceerrorHandler
- optional error handler interface- Returns:
- the validated result, or null if inapplicable
- Throws:
Exception
- if an error occurs
-
doValidate
@Nullable protected abstract Subject doValidate(@Nonnull ProfileRequestContext profileRequestContext, @Nonnull AuthenticationContext authenticationContext, @Nonnull UsernamePasswordContext usernamePasswordContext, @Nullable CredentialValidator.WarningHandler warningHandler, @Nullable CredentialValidator.ErrorHandler errorHandler) throws Exception Override method for subclasses to use to perform the actual validation.Any configured transforms will have been applied to populate the context with a transformed username prior to this method call.
- Parameters:
profileRequestContext
- profile request contextauthenticationContext
- authentication contextusernamePasswordContext
- the username/password to validatewarningHandler
- optional warning handler interfaceerrorHandler
- optional error handler interface- Returns:
- the validated result, or null if inapplicable
- Throws:
Exception
- if an error occurs
-
populateSubject
@Nonnull protected Subject populateSubject(@Nonnull Subject subject, @Nonnull UsernamePasswordContext usernamePasswordContext) Decorate the subject with "standard" content from the validation and clean up as instructed.- Parameters:
subject
- the subject being returnedusernamePasswordContext
- the username/password validated- Returns:
- the decorated subject
-
applyTransforms
Apply any configured regular expression replacements to an input value and return the result.- Parameters:
input
- the input string- Returns:
- the result of applying the expressions
-