Class SMSVerificator

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.sms.SMSVerificator
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, SMSExchange

public class SMSVerificator extends pl.edu.icm.unity.engine.api.authn.local.AbstractLocalVerificator implements SMSExchange
Ordinary sms credential verificator.

Additionally configuration of the credential may allow for lost phone recovery feature. Then are stored email verification settings and confirmation code length.

Author:
P.Piernik
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.sms.SMSExchange

    ID
  • Constructor Summary

    Constructors
    Constructor
    Description
    SMSVerificator(pl.edu.icm.unity.engine.api.notification.NotificationProducer notificationProducer, pl.edu.icm.unity.engine.api.authn.local.CredentialHelper credentialHelper, pl.edu.icm.unity.stdext.credential.sms.AuthnSMSCounter smslimitCache)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    pl.edu.icm.unity.base.authn.CredentialPublicInformation
    checkCredentialState(String currentCredential)
     
    pl.edu.icm.unity.base.authn.AuthenticationMethod
     
     
     
    invalidate(String currentCredential)
     
    boolean
    isAuthSMSLimitExceeded(pl.edu.icm.unity.engine.api.authn.AuthenticationSubject username)
    Check if sms authn sending limit is exceeded
    boolean
     
    boolean
    isCredentialSet(pl.edu.icm.unity.base.entity.EntityParam entity)
     
    prepareCredential(String rawCredential, String currentCredential, boolean verifyNew)
     
    pl.edu.icm.unity.engine.api.confirmation.SMSCode
    sendCode(pl.edu.icm.unity.engine.api.authn.AuthenticationSubject subject, boolean force)
    Send code to the user
    void
     
    pl.edu.icm.unity.engine.api.authn.AuthenticationResult
    verifyCode(pl.edu.icm.unity.engine.api.confirmation.SMSCode sentCode, String codeFromUser, pl.edu.icm.unity.engine.api.authn.AuthenticationSubject subject)
    Verifies the user provided sms code.

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

    getCredentialName, getType, isSupportingInvalidation, setCredentialName, updateCredentialAfterConfigurationChange

    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

    • SMSVerificator

      @Autowired public SMSVerificator(pl.edu.icm.unity.engine.api.notification.NotificationProducer notificationProducer, pl.edu.icm.unity.engine.api.authn.local.CredentialHelper credentialHelper, pl.edu.icm.unity.stdext.credential.sms.AuthnSMSCounter smslimitCache)
  • Method Details

    • prepareCredential

      public String prepareCredential(String rawCredential, String currentCredential, boolean verifyNew) throws pl.edu.icm.unity.engine.api.authn.IllegalCredentialException, pl.edu.icm.unity.base.exceptions.InternalException
      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
    • 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
    • invalidate

      public String invalidate(String currentCredential)
      Specified by:
      invalidate in interface pl.edu.icm.unity.engine.api.authn.local.LocalCredentialVerificator
    • 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
    • sendCode

      public pl.edu.icm.unity.engine.api.confirmation.SMSCode sendCode(pl.edu.icm.unity.engine.api.authn.AuthenticationSubject subject, boolean force) throws pl.edu.icm.unity.base.exceptions.EngineException
      Description copied from interface: SMSExchange
      Send code to the user
      Specified by:
      sendCode in interface SMSExchange
      Parameters:
      force - forcing auth sms limit omitting
      Throws:
      pl.edu.icm.unity.base.exceptions.EngineException
    • verifyCode

      public pl.edu.icm.unity.engine.api.authn.AuthenticationResult verifyCode(pl.edu.icm.unity.engine.api.confirmation.SMSCode sentCode, String codeFromUser, pl.edu.icm.unity.engine.api.authn.AuthenticationSubject subject)
      Description copied from interface: SMSExchange
      Verifies the user provided sms code.
      Specified by:
      verifyCode in interface SMSExchange
    • getSMSCredentialResetBackend

      public SMSCredentialResetImpl getSMSCredentialResetBackend()
      Specified by:
      getSMSCredentialResetBackend in interface SMSExchange
      Returns:
      credential reset backend
    • isAuthSMSLimitExceeded

      public boolean isAuthSMSLimitExceeded(pl.edu.icm.unity.engine.api.authn.AuthenticationSubject username)
      Description copied from interface: SMSExchange
      Check if sms authn sending limit is exceeded
      Specified by:
      isAuthSMSLimitExceeded in interface SMSExchange
    • 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
    • isCredentialDefinitionChagneOutdatingCredentials

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

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