验证类的重命名
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.Target;
|
||||
@@ -8,13 +8,12 @@ import java.lang.annotation.RetentionPolicy;
|
||||
|
||||
import jakarta.validation.Constraint;
|
||||
import jakarta.validation.Payload;
|
||||
import quant.rich.emoney.validator.EmoneyRequestConfigValidator;
|
||||
|
||||
@Documented
|
||||
@Constraint(validatedBy = EmoneyRequestConfigValidator.class)
|
||||
@Target({ ElementType.TYPE })
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface ValidEmoneyRequestConfig {
|
||||
public @interface EmoneyRequestConfigValid {
|
||||
String message() default "非法的 EmoneyRequestConfig";
|
||||
Class<?>[] groups() 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.EmoneyRequestConfig;
|
||||
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}$");
|
||||
|
||||
|
||||
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