Package org.keycloak.validate
Class AbstractSimpleValidator
java.lang.Object
org.keycloak.validate.AbstractSimpleValidator
- All Implemented Interfaces:
Provider
,ProviderFactory<Validator>
,SimpleValidator
,Validator
,ValidatorFactory
- Direct Known Subclasses:
AbstractNumberValidator
,AbstractStringValidator
,UriValidator
Base class for arbitrary value type validators. Functionality covered in this base class:
- accepts supported type, collection of supported type.
- behavior around null and empty values is controlled by
IGNORE_EMPTY_VALUE
configuration option which is boolean. Error should be produced for them by default, but they should be ignored if that option istrue
. Logic must be implemented inskipValidation(Object, ValidatorConfig)
.
- Author:
- Vlastimil Elias <velias@redhat.com>
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
Config option which allows to switch validator to ignore null, empty string and even blank string value - not to produce error for them. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected abstract void
doValidate
(Object value, String inputHint, ValidationContext context, ValidatorConfig config) Validate type, format, range of the value etc.protected boolean
Default implementation only looks forIGNORE_EMPTY_VALUE
configuration option.protected abstract boolean
skipValidation
(Object value, ValidatorConfig config) Decide if validation of individual value should be skipped or not.validate
(Object input, String inputHint, ValidationContext context, ValidatorConfig config) Validates the giveninput
with an additionalinputHint
andconfig
.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.keycloak.provider.ProviderFactory
getConfigMetadata, getId, order
Methods inherited from interface org.keycloak.validate.SimpleValidator
close, create, init, postInit
Methods inherited from interface org.keycloak.validate.Validator
validate, validate, validate, validate, validate
Methods inherited from interface org.keycloak.validate.ValidatorFactory
validateConfig
-
Field Details
-
IGNORE_EMPTY_VALUE
Config option which allows to switch validator to ignore null, empty string and even blank string value - not to produce error for them. Used eg. in UserProfile where we have optional attributes and required concern is checked by separate validators.- See Also:
-
-
Constructor Details
-
AbstractSimpleValidator
public AbstractSimpleValidator()
-
-
Method Details
-
validate
public ValidationContext validate(Object input, String inputHint, ValidationContext context, ValidatorConfig config) Description copied from interface:Validator
Validates the giveninput
with an additionalinputHint
andconfig
. -
doValidate
protected abstract void doValidate(Object value, String inputHint, ValidationContext context, ValidatorConfig config) Validate type, format, range of the value etc. Always useValidationContext.addError(ValidationError)
to report error to the user! Can be called multiple time for one validation if input is Collection.- Parameters:
value
- to be validated, never nullinputHint
-context
- for the validation. Add errors into it.config
- of the validation if provided- See Also:
-
skipValidation
Decide if validation of individual value should be skipped or not. It should be controlled byIGNORE_EMPTY_VALUE
configuration option, seeisIgnoreEmptyValuesConfigured(ValidatorConfig)
.- Parameters:
value
- currently validated we make decision forconfig
- to look for options in- Returns:
- true if validation should be skipped for this value -
doValidate(Object, String, ValidationContext, ValidatorConfig)
is not called in this case. - See Also:
-
isIgnoreEmptyValuesConfigured
Default implementation only looks forIGNORE_EMPTY_VALUE
configuration option.- Parameters:
config
- to get option from- Returns:
-