private static void validateEvent()

in log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/LogEventFactory.java [147:178]


	private static void validateEvent(Class<?> intrface, AuditMessage msg) {
		StringBuilder errors = new StringBuilder();
		validateContextConstraints(intrface, errors);

		List<Property> props = getProperties(intrface);
		Map<String, Property> propertyMap = new HashMap<>();

		for (Property property : props) {
		    propertyMap.put(property.name, property);
		    if (property.isRequired && !msg.containsKey(property.name)) {
		        if (errors.length() > 0) {
		            errors.append("\n");
		        }
		        errors.append("Required attribute ").append(property.name).append(" is missing from ").append(msg.getId().getName());
		    }
		    if (msg.containsKey(property.name)) {
		        validateConstraints(false, property.constraints, property.name, msg, errors);
		    }
		}

		msg.forEach((key, value) -> {
			if (!propertyMap.containsKey(key)) {
				if (errors.length() > 0) {
					errors.append("Attribute ").append(key).append(" is not defined for ").append(msg.getId().getName());
				}
			}
		});

		if (errors.length() > 0) {
		    throw new ConstraintValidationException(errors.toString());
		}
	}