Skip to content

Commit 00160db

Browse files
committed
Support @ValidPrintable on String values
1 parent 602472c commit 00160db

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

src/main/java/org/owasp/esapi/reference/validation/annotations/ValidPrintable.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
@Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE})
2020
@Retention(RUNTIME)
21-
@Constraint(validatedBy = ValidPrintableValidator.class)
21+
@Constraint(validatedBy = {ValidPrintableValidator.class, ValidPrintableStringValidator.class})
2222
@Documented
2323
public @interface ValidPrintable {
2424

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package org.owasp.esapi.reference.validation.annotations;
2+
3+
import javax.validation.ConstraintValidator;
4+
import javax.validation.ConstraintValidatorContext;
5+
6+
import org.owasp.esapi.ESAPI;
7+
import org.owasp.esapi.ValidationErrorList;
8+
9+
10+
public class ValidPrintableStringValidator implements ConstraintValidator<ValidPrintable, String>{
11+
12+
private String context;
13+
private int maxLength;
14+
private boolean allowNull;
15+
16+
@Override
17+
public void initialize(ValidPrintable validPrintable) {
18+
context = validPrintable.context();
19+
maxLength = validPrintable.maxLength();
20+
allowNull = validPrintable.allowNull();
21+
}
22+
23+
@Override
24+
public boolean isValid(String input, ConstraintValidatorContext constraintValidatorContext) {
25+
if (input == null) {
26+
return true;
27+
}
28+
ValidationErrorList errorList = new ValidationErrorList();
29+
boolean valid = ESAPI.validator().isValidPrintable(context, input, maxLength, allowNull, errorList);
30+
31+
if(!valid){
32+
ValidationUtil.addViolatons(errorList, constraintValidatorContext);
33+
}
34+
35+
return valid;
36+
}
37+
}

0 commit comments

Comments
 (0)