Class PasswordVerificator

java.lang.Object
pl.edu.icm.unity.engine.api.authn.AbstractVerificator
pl.edu.icm.unity.engine.api.authn.local.AbstractLocalVerificator
pl.edu.icm.unity.stdext.credential.pass.PasswordVerificator
All Implemented Interfaces:
pl.edu.icm.unity.base.describedObject.DescribedObject, pl.edu.icm.unity.base.describedObject.NamedObject, pl.edu.icm.unity.engine.api.authn.CredentialExchange, pl.edu.icm.unity.engine.api.authn.CredentialVerificator, pl.edu.icm.unity.engine.api.authn.local.LocalCredentialVerificator, pl.edu.icm.unity.engine.api.utils.StringConfigurable, PasswordExchange

public class PasswordVerificator extends pl.edu.icm.unity.engine.api.authn.local.AbstractLocalVerificator implements PasswordExchange
Ordinary password credential verificator. Supports all settings from PasswordCredential.

Additionally configuration of the credential may allow for password reset feature. Then are stored email verification settings, security question settings and confirmation code length.

Author:
K. Benedyczak
See Also:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
     

    Nested classes/interfaces inherited from interface pl.edu.icm.unity.engine.api.authn.CredentialVerificator

    pl.edu.icm.unity.engine.api.authn.CredentialVerificator.VerificatorType
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
     
    static final String[]
     
    static final String
     

    Fields inherited from class pl.edu.icm.unity.engine.api.authn.local.AbstractLocalVerificator

    credentialName

    Fields inherited from class pl.edu.icm.unity.engine.api.authn.AbstractVerificator

    identityResolver, instanceName

    Fields inherited from interface pl.edu.icm.unity.stdext.credential.pass.PasswordExchange

    ID
  • Constructor Summary

    Constructors
    Constructor
    Description
    PasswordVerificator(pl.edu.icm.unity.engine.api.notification.NotificationProducer notificationProducer, pl.edu.icm.unity.engine.api.authn.local.CredentialHelper credentialHelper, Optional<PasswordEncodingPoolProvider> threadPoolProvider)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    pl.edu.icm.unity.base.authn.CredentialPublicInformation
    checkCredentialState(String currentCredential)
     
    pl.edu.icm.unity.engine.api.authn.AuthenticationResult
    checkPassword(String username, String password, String formForUnknown, boolean enableAssociation, pl.edu.icm.unity.engine.api.authn.remote.AuthenticationTriggeringContext triggeringContext)
    Checks if the provided password is valid.
    pl.edu.icm.unity.base.authn.AuthenticationMethod
     
    static List<edu.vt.middleware.password.CharacterRule>
     
    pl.edu.icm.unity.engine.api.authn.CredentialReset
     
    static List<edu.vt.middleware.password.Rule>
     
     
    invalidate(String currentCredential)
     
    boolean
     
    boolean
    isCredentialSet(pl.edu.icm.unity.base.entity.EntityParam entity)
     
    prepareCredential(String rawCredential, String currentCredential, boolean verify)
    The rawCredential must be in JSON format, see PasswordToken for details.
    void
     
     

    Methods inherited from class pl.edu.icm.unity.engine.api.authn.local.AbstractLocalVerificator

    getCredentialName, getType, isSupportingInvalidation, setCredentialName

    Methods inherited from class pl.edu.icm.unity.engine.api.authn.AbstractVerificator

    getDescription, getExchangeId, getName, setIdentityResolver, setInstanceName

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface pl.edu.icm.unity.engine.api.authn.CredentialExchange

    getExchangeId

    Methods inherited from interface pl.edu.icm.unity.engine.api.authn.CredentialVerificator

    setIdentityResolver, setInstanceName

    Methods inherited from interface pl.edu.icm.unity.base.describedObject.DescribedObject

    getDescription

    Methods inherited from interface pl.edu.icm.unity.base.describedObject.NamedObject

    getName
  • Field Details

  • Constructor Details

    • PasswordVerificator

      @Autowired public PasswordVerificator(pl.edu.icm.unity.engine.api.notification.NotificationProducer notificationProducer, pl.edu.icm.unity.engine.api.authn.local.CredentialHelper credentialHelper, Optional<PasswordEncodingPoolProvider> threadPoolProvider)
  • Method Details

    • getSerializedConfiguration

      public String getSerializedConfiguration() throws pl.edu.icm.unity.base.exceptions.InternalException
      Specified by:
      getSerializedConfiguration in interface pl.edu.icm.unity.engine.api.utils.StringConfigurable
      Throws:
      pl.edu.icm.unity.base.exceptions.InternalException
    • setSerializedConfiguration

      public void setSerializedConfiguration(String json) throws pl.edu.icm.unity.base.exceptions.InternalException
      Specified by:
      setSerializedConfiguration in interface pl.edu.icm.unity.engine.api.utils.StringConfigurable
      Throws:
      pl.edu.icm.unity.base.exceptions.InternalException
    • prepareCredential

      public String prepareCredential(String rawCredential, String currentCredential, boolean verify) throws pl.edu.icm.unity.engine.api.authn.IllegalCredentialException, pl.edu.icm.unity.base.exceptions.InternalException
      The rawCredential must be in JSON format, see PasswordToken for details.
      Specified by:
      prepareCredential in interface pl.edu.icm.unity.engine.api.authn.local.LocalCredentialVerificator
      Throws:
      pl.edu.icm.unity.engine.api.authn.IllegalCredentialException
      pl.edu.icm.unity.base.exceptions.InternalException
    • invalidate

      public String invalidate(String currentCredential)
      Specified by:
      invalidate in interface pl.edu.icm.unity.engine.api.authn.local.LocalCredentialVerificator
    • checkCredentialState

      public pl.edu.icm.unity.base.authn.CredentialPublicInformation checkCredentialState(String currentCredential) throws pl.edu.icm.unity.base.exceptions.InternalException
      Specified by:
      checkCredentialState in interface pl.edu.icm.unity.engine.api.authn.local.LocalCredentialVerificator
      Throws:
      pl.edu.icm.unity.base.exceptions.InternalException
    • updateCredentialAfterConfigurationChange

      public Optional<String> updateCredentialAfterConfigurationChange(String currentCredential)
      Specified by:
      updateCredentialAfterConfigurationChange in interface pl.edu.icm.unity.engine.api.authn.local.LocalCredentialVerificator
      Overrides:
      updateCredentialAfterConfigurationChange in class pl.edu.icm.unity.engine.api.authn.local.AbstractLocalVerificator
    • checkPassword

      public pl.edu.icm.unity.engine.api.authn.AuthenticationResult checkPassword(String username, String password, String formForUnknown, boolean enableAssociation, pl.edu.icm.unity.engine.api.authn.remote.AuthenticationTriggeringContext triggeringContext)
      Checks if the provided password is valid. If it is then it is checked if it is still fulfilling all actual rules of the credential's configuration. If not then it is returned that credential state is outdated.
      Specified by:
      checkPassword in interface PasswordExchange
    • getCredentialResetBackend

      public pl.edu.icm.unity.engine.api.authn.CredentialReset getCredentialResetBackend()
      Specified by:
      getCredentialResetBackend in interface PasswordExchange
      Returns:
      credential reset backend
    • isCredentialDefinitionChagneOutdatingCredentials

      public boolean isCredentialDefinitionChagneOutdatingCredentials(String newCredentialDefinition)
      Specified by:
      isCredentialDefinitionChagneOutdatingCredentials in interface pl.edu.icm.unity.engine.api.authn.local.LocalCredentialVerificator
    • getCharacteristicsRules

      public static List<edu.vt.middleware.password.CharacterRule> getCharacteristicsRules()
    • getSequencesRules

      public static List<edu.vt.middleware.password.Rule> getSequencesRules()
    • isCredentialSet

      public boolean isCredentialSet(pl.edu.icm.unity.base.entity.EntityParam entity) throws pl.edu.icm.unity.base.exceptions.EngineException
      Specified by:
      isCredentialSet in interface pl.edu.icm.unity.engine.api.authn.local.LocalCredentialVerificator
      Throws:
      pl.edu.icm.unity.base.exceptions.EngineException
    • getAuthenticationMethod

      public pl.edu.icm.unity.base.authn.AuthenticationMethod getAuthenticationMethod()
      Specified by:
      getAuthenticationMethod in interface pl.edu.icm.unity.engine.api.authn.CredentialVerificator