1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.core.persistence.jpa.validation.entity;
20
21 import java.util.regex.Pattern;
22 import javax.validation.ConstraintValidatorContext;
23 import org.apache.syncope.common.lib.types.EntityViolationType;
24 import org.apache.syncope.core.persistence.api.entity.DynRealm;
25
26 public class DynRealmValidator extends AbstractValidator<DynRealmCheck, DynRealm> {
27
28 private static final Pattern REALM_KEY_PATTERN = Pattern.compile("^[A-Za-z0-9]+");
29
30 @Override
31 public boolean isValid(final DynRealm dynRealm, final ConstraintValidatorContext context) {
32 context.disableDefaultConstraintViolation();
33
34 boolean isValid = true;
35
36 if (dynRealm.getKey().startsWith("/") || !REALM_KEY_PATTERN.matcher(dynRealm.getKey()).matches()) {
37 isValid = false;
38
39 context.buildConstraintViolationWithTemplate(
40 getTemplate(EntityViolationType.InvalidDynRealm,
41 "Only letters and numbers are allowed in dynamic realm key, and must not start with /")).
42 addPropertyNode("key").addConstraintViolation();
43 }
44
45 return isValid;
46 }
47 }