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.validation.ConstraintValidator;
21 import org.apache.logging.log4j.core.config.plugins.validation.constraints.ValidHost;
22 import org.apache.logging.log4j.status.StatusLogger;
23
24 import java.net.InetAddress;
25 import java.net.UnknownHostException;
26
27
28
29
30
31
32
33 public class ValidHostValidator implements ConstraintValidator<ValidHost> {
34
35 private static final Logger LOGGER = StatusLogger.getLogger();
36
37 private ValidHost annotation;
38
39 @Override
40 public void initialize(final ValidHost annotation) {
41 this.annotation = annotation;
42 }
43
44 @Override
45 public boolean isValid(final String name, final Object value) {
46 if (value == null) {
47 LOGGER.error(annotation.message());
48 return false;
49 }
50 if (value instanceof InetAddress) {
51
52 return true;
53 }
54 try {
55 InetAddress.getByName(value.toString());
56 return true;
57 } catch (final UnknownHostException e) {
58 LOGGER.error(annotation.message(), e);
59 return false;
60 }
61 }
62 }