验证类的重命名
This commit is contained in:
@@ -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 {};
|
||||||
@@ -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}$");
|
||||||
|
|
||||||
|
|||||||
14
src/main/java/quant/rich/emoney/validator/IValidator.java
Normal file
14
src/main/java/quant/rich/emoney/validator/IValidator.java
Normal 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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 {};
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user