1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.logging.log4j.core.config.plugins.validation.validators;
18
19 import org.apache.logging.log4j.Logger;
20 import org.apache.logging.log4j.core.config.plugins.convert.TypeConverters;
21 import org.apache.logging.log4j.core.config.plugins.validation.ConstraintValidator;
22 import org.apache.logging.log4j.core.config.plugins.validation.constraints.ValidPort;
23 import org.apache.logging.log4j.status.StatusLogger;
24
25
26
27
28
29
30 public class ValidPortValidator implements ConstraintValidator<ValidPort> {
31
32 private static final Logger LOGGER = StatusLogger.getLogger();
33
34 private ValidPort annotation;
35
36 @Override
37 public void initialize(final ValidPort annotation) {
38 this.annotation = annotation;
39 }
40
41 @Override
42 public boolean isValid(final String name, final Object value) {
43 if (value instanceof CharSequence) {
44 return isValid(name, TypeConverters.convert(value.toString(), Integer.class, -1));
45 }
46 if (!Integer.class.isInstance(value)) {
47 LOGGER.error(annotation.message());
48 return false;
49 }
50 final int port = (int) value;
51 if (port < 0 || port > 65535) {
52 LOGGER.error(annotation.message());
53 return false;
54 }
55 return true;
56 }
57 }