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
public abstract class AbstractSimpleValidator extends Object implements SimpleValidator
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
-
-
Field Summary
Fields Modifier and Type Field Description static String
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.
-
Constructor Summary
Constructors Constructor Description AbstractSimpleValidator()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract void
doValidate(Object value, String inputHint, ValidationContext context, ValidatorConfig config)
Validate type, format, range of the value etc.protected boolean
isIgnoreEmptyValuesConfigured(ValidatorConfig config)
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.ValidationContext
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, validate
-
Methods inherited from interface org.keycloak.validate.ValidatorFactory
validateConfig
-
-
-
-
Field Detail
-
IGNORE_EMPTY_VALUE
public static final String 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:
- Constant Field Values
-
-
Method Detail
-
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(Object, ValidatorConfig)
-
skipValidation
protected abstract boolean skipValidation(Object value, ValidatorConfig config)
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:
doValidate(Object, String, ValidationContext, ValidatorConfig)
-
isIgnoreEmptyValuesConfigured
protected boolean isIgnoreEmptyValuesConfigured(ValidatorConfig config)
Default implementation only looks forIGNORE_EMPTY_VALUE
configuration option.- Parameters:
config
- to get option from- Returns:
-
-