The parameters protocol, host and port are matched against the corresponding parts of the URL.
and an additional regular expression can be specified using regexp and flags to further restrict the
matching criteria.
Note
Per default the constraint validator for this constraint uses the java.net.URL constructor to validate the string.
This means that a matching protocol handler needs to be available. Handlers for the following protocols are guaranteed
to exist within a default JVM - http, https, ftp, file, and jar.
See also the Javadoc for URL.
In case URLs with non default protocol handlers need to be validated, Hibernate Validator can be configured to use
a regular expression based URL validator only. This can be done programmatically via a org.hibernate.validator.cfg.ConstraintMapping:
HibernateValidatorConfiguration config = Validation.byProvider( HibernateValidator.class )
.getConfiguration( HibernateValidator.class );
ConstraintMapping constraintMapping = config.createConstraintMapping();
constraintMapping
.constraintDefinition( URL.class )
.includeExistingValidators( false )
.validatedBy( RegexpURLValidator.class );
config.addMapping( constraintMapping );
or via a constraint mapping configuration:
<constraint-mappings
xmlns="http://jboss.org/xml/ns/javax/validation/mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jboss.org/xml/ns/javax/validation/mapping validation-mapping-1.0.xsd">
<constraint-definition annotation="org.hibernate.validator.constraints.URL">
<validated-by include-existing-validators="false">
<value>org.hibernate.validator.constraintvalidators.RegexpURLValidator</value>
</validated-by>
</constraint-definition>
</constraint-mappings>
org.hibernate.validator.cfg.ConstraintMapping#constraintDefinition(Class)
| Modifier and Type | Class and Description |
|---|---|
| public static @interface | URL.List
Defines several |
| Modifier and Type | Method and Description |
|---|---|
| public Pattern. | |
| public Class | |
| public String | Returns: the host the annotated string must match, e.g. localhost. Per default any host is allowed
|
| public String | |
| public Class | |
| public int | |
| public String | Returns: the protocol (scheme) the annotated string must match, e.g. ftp or http. Per default any protocol is allowed
|
| public String | Returns: an additional regular expression the annotated URL must match. The default is any string ('.*')
|
| flags | back to summary |
|---|---|
public Pattern.
| |
| groups | back to summary |
|---|---|
| public Class | |
| host | back to summary |
|---|---|
public String host()
| |
| message | back to summary |
|---|---|
| public String message() | |
| payload | back to summary |
|---|---|
| public Class | |
| port | back to summary |
|---|---|
public int port()
| |
| protocol | back to summary |
|---|---|
public String protocol()
| |
| regexp | back to summary |
|---|---|
public String regexp()
| |
@URL annotations on the same element.
| Modifier and Type | Method and Description |
|---|---|
| public URL[] |
| value | back to summary |
|---|---|
| public URL[] value() | |