Class AbstractNumberValidator

java.lang.Object
org.keycloak.validate.AbstractSimpleValidator
org.keycloak.validate.validators.AbstractNumberValidator
All Implemented Interfaces:
org.keycloak.provider.ConfiguredProvider, org.keycloak.provider.Provider, org.keycloak.provider.ProviderFactory<org.keycloak.validate.Validator>, org.keycloak.validate.SimpleValidator, org.keycloak.validate.Validator, org.keycloak.validate.ValidatorFactory
Direct Known Subclasses:
DoubleValidator, IntegerValidator

public abstract class AbstractNumberValidator extends org.keycloak.validate.AbstractSimpleValidator implements org.keycloak.provider.ConfiguredProvider
Abstract class for number validator. Supports min and max value validations using KEY_MIN and KEY_MAX config options.
Author:
Vlastimil Elias <velias@redhat.com>
  • Field Details

  • Constructor Details

    • AbstractNumberValidator

      public AbstractNumberValidator()
    • AbstractNumberValidator

      public AbstractNumberValidator(org.keycloak.validate.ValidatorConfig config)
  • Method Details

    • getConfigProperties

      public List<org.keycloak.provider.ProviderConfigProperty> getConfigProperties()
      Specified by:
      getConfigProperties in interface org.keycloak.provider.ConfiguredProvider
    • skipValidation

      protected boolean skipValidation(Object value, org.keycloak.validate.ValidatorConfig config)
      Specified by:
      skipValidation in class org.keycloak.validate.AbstractSimpleValidator
    • doValidate

      protected void doValidate(Object value, String inputHint, org.keycloak.validate.ValidationContext context, org.keycloak.validate.ValidatorConfig config)
      Specified by:
      doValidate in class org.keycloak.validate.AbstractSimpleValidator
    • selectRangeErrorMessage

      protected String selectRangeErrorMessage(org.keycloak.validate.ValidatorConfig config)
      Select error message depending on the allowed range interval bound configuration.
    • validateConfig

      public org.keycloak.validate.ValidationResult validateConfig(org.keycloak.models.KeycloakSession session, org.keycloak.validate.ValidatorConfig config)
      Specified by:
      validateConfig in interface org.keycloak.validate.ValidatorFactory
    • convert

      protected abstract Number convert(Object value, org.keycloak.validate.ValidatorConfig config)
      Convert input value to instance of Number supported by this validator.
      Parameters:
      value - to convert
      config -
      Returns:
      value converted to supported Number instance
      Throws:
      NumberFormatException - if value is not convertible to supported Number instance so MESSAGE_INVALID_NUMBER error is reported.
    • getMinMaxConfig

      protected abstract Number getMinMaxConfig(org.keycloak.validate.ValidatorConfig config, String key)
      Get config value for min and max validation bound as a Number supported by this validator
      Parameters:
      config - to get from
      key - of the config value
      Returns:
      bound value or null
    • isFirstGreaterThanToSecond

      protected abstract boolean isFirstGreaterThanToSecond(Number n1, Number n2)
      Compare two numbers of supported type (fed by convert(Object, ValidatorConfig) and getMinMaxConfig(ValidatorConfig, String) )
      Parameters:
      n1 -
      n2 -
      Returns:
      true if first number is greater than second