验证类的重命名

This commit is contained in:
2025-05-13 14:53:00 +08:00
parent a1833e254c
commit 8549eb4286
5 changed files with 76 additions and 5 deletions

View File

@@ -1,4 +1,4 @@
package quant.rich.emoney.interfaces; package quant.rich.emoney.validator;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Target; import java.lang.annotation.Target;
@@ -8,13 +8,12 @@ import java.lang.annotation.RetentionPolicy;
import jakarta.validation.Constraint; import jakarta.validation.Constraint;
import jakarta.validation.Payload; import jakarta.validation.Payload;
import quant.rich.emoney.validator.EmoneyRequestConfigValidator;
@Documented @Documented
@Constraint(validatedBy = EmoneyRequestConfigValidator.class) @Constraint(validatedBy = EmoneyRequestConfigValidator.class)
@Target({ ElementType.TYPE }) @Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
public @interface ValidEmoneyRequestConfig { public @interface EmoneyRequestConfigValid {
String message() default "非法的 EmoneyRequestConfig"; String message() default "非法的 EmoneyRequestConfig";
Class<?>[] groups() default {}; Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {}; Class<? extends Payload>[] payload() default {};

View File

@@ -9,9 +9,8 @@ import jakarta.validation.ConstraintValidatorContext;
import quant.rich.emoney.entity.config.DeviceInfoConfig; import quant.rich.emoney.entity.config.DeviceInfoConfig;
import quant.rich.emoney.entity.config.EmoneyRequestConfig; import quant.rich.emoney.entity.config.EmoneyRequestConfig;
import quant.rich.emoney.interfaces.IConfig; import quant.rich.emoney.interfaces.IConfig;
import quant.rich.emoney.interfaces.ValidEmoneyRequestConfig;
public class EmoneyRequestConfigValidator implements ConstraintValidator<ValidEmoneyRequestConfig, IConfig<EmoneyRequestConfig>> { public class EmoneyRequestConfigValidator implements IValidator, ConstraintValidator<EmoneyRequestConfigValid, IConfig<EmoneyRequestConfig>> {
static final Pattern androidIdPattern = Pattern.compile("^[0-9a-f]{16}$"); static final Pattern androidIdPattern = Pattern.compile("^[0-9a-f]{16}$");

View File

@@ -0,0 +1,14 @@
package quant.rich.emoney.validator;
import jakarta.validation.ConstraintValidatorContext;
public interface IValidator {
public default boolean invalid(ConstraintValidatorContext context, String message) {
context.disableDefaultConstraintViolation();
context.buildConstraintViolationWithTemplate(message)
.addConstraintViolation();
return false;
}
}

View File

@@ -0,0 +1,20 @@
package quant.rich.emoney.validator;
import java.lang.annotation.Documented;
import java.lang.annotation.Target;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import jakarta.validation.Constraint;
import jakarta.validation.Payload;
@Documented
@Constraint(validatedBy = ProxyConfigValidator.class)
@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
public @interface ProxyConfigValid {
String message() default "非法的 ProxyConfig";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}

View File

@@ -0,0 +1,39 @@
package quant.rich.emoney.validator;
import java.net.Proxy;
import java.util.Objects;
import org.apache.commons.lang3.StringUtils;
import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;
import quant.rich.emoney.entity.config.ProxyConfig;
import quant.rich.emoney.interfaces.IConfig;
public class ProxyConfigValidator implements IValidator, ConstraintValidator<ProxyConfigValid, IConfig<ProxyConfig>> {
@Override
public boolean isValid(IConfig<ProxyConfig> value, ConstraintValidatorContext context) {
if (value == null) return true;
if (!(value instanceof ProxyConfig config)) return true;
if (config.getProxyType() != null && config.getProxyType() != Proxy.Type.DIRECT) {
if (StringUtils.isBlank(config.getProxyHost())) {
return invalid(context, "设置代理为 HTTP 或 SOCKS 时,代理地址不允许为空");
}
if (Objects.isNull(config.getProxyPort()) || config.getProxyPort() <= 0 || config.getProxyPort() > 65535) {
return invalid(context, "端口不合法");
}
// 非匿名须判断用户名密码是否为空
boolean valid = ProxyConfig.isProxyEffective(
config.getProxy(), config.getIgnoreHttpsVerification());
if (!valid) {
return invalid(context, "代理连接失败,请检查");
}
}
return true;
}
}