Package net.shibboleth.idp.authn.impl
Class HTPasswdCredentialValidator
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
net.shibboleth.idp.authn.impl.HTPasswdCredentialValidator
- All Implemented Interfaces:
CredentialValidator
,PrincipalSupportingComponent
,Component
,DestructableComponent
,IdentifiableComponent
,IdentifiedComponent
,InitializableComponent
@ThreadSafeAfterInit
public class HTPasswdCredentialValidator
extends AbstractUsernamePasswordCredentialValidator
A password validator that authenticates against Apache htpasswd files.
- 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 TypeFieldDescriptionIn-memory copy of entries.private StringDigester
Digester for SHA-1.private Resource
Source of information.private long
File timestamp.private final org.slf4j.Logger
Class logger. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate boolean
authenticate
(UsernamePasswordContext usernamePasswordContext, String storedPassword) Compare input password to stored value.protected void
protected 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.Reads the credentials from stream.private void
Check for file refresh.void
setResource
(Resource resource) Set the resource to use.Methods inherited from class net.shibboleth.idp.authn.AbstractUsernamePasswordCredentialValidator
applyTransforms, doValidate, populateSubject, removeContextAfterValidation, savePasswordToCredentialSet, setLowercase, setMatchExpression, setRemoveContextAfterValidation, setSavePasswordToCredentialSet, setTransforms, setTrim, setUppercase, setUsernamePasswordContextLookupStrategy
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
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
-
log
@Nonnull private final org.slf4j.Logger logClass logger. -
digester
Digester for SHA-1. -
htPasswdResource
Source of information. -
lastModified
@Nullable private long lastModifiedFile timestamp. -
credentialMap
In-memory copy of entries.
-
-
Constructor Details
-
HTPasswdCredentialValidator
public HTPasswdCredentialValidator()Constructor.
-
-
Method Details
-
setResource
Set the resource to use.- Parameters:
resource
- resource to use
-
doInitialize
- Overrides:
doInitialize
in classAbstractIdentifiedInitializableComponent
- Throws:
ComponentInitializationException
-
doValidate
@Nullable protected 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.
- Specified by:
doValidate
in classAbstractUsernamePasswordCredentialValidator
- 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
-
authenticate
@Nonnull private boolean authenticate(@Nonnull UsernamePasswordContext usernamePasswordContext, @Nonnull String storedPassword) Compare input password to stored value.- Parameters:
usernamePasswordContext
- input contextstoredPassword
- the stored string- Returns:
- true iff the password matches
-
refreshCredentials
private void refreshCredentials()Check for file refresh. -
readCredentials
Reads the credentials from stream.- Parameters:
is
- input stream- Returns:
- map of credentials
-