restoring preidicate consistency by remove Validated and adding NotNull.
This commit is contained in:
@@ -21,6 +21,7 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import org.springframework.web.server.ServerWebExchange;
|
||||
|
||||
/**
|
||||
@@ -65,6 +66,7 @@ public class BeforeRoutePredicateFactory extends AbstractRoutePredicateFactory<B
|
||||
|
||||
public static class Config {
|
||||
|
||||
@NotNull
|
||||
private ZonedDateTime datetime;
|
||||
|
||||
public ZonedDateTime getDatetime() {
|
||||
|
||||
@@ -24,7 +24,6 @@ import java.util.function.Predicate;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.server.ServerWebExchange;
|
||||
|
||||
/**
|
||||
@@ -75,7 +74,6 @@ public class BetweenRoutePredicateFactory extends AbstractRoutePredicateFactory<
|
||||
};
|
||||
}
|
||||
|
||||
@Validated
|
||||
public static class Config {
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -23,7 +23,6 @@ import java.util.function.Predicate;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
|
||||
import org.springframework.http.HttpCookie;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.server.ServerWebExchange;
|
||||
|
||||
/**
|
||||
@@ -79,7 +78,6 @@ public class CookieRoutePredicateFactory extends AbstractRoutePredicateFactory<C
|
||||
};
|
||||
}
|
||||
|
||||
@Validated
|
||||
public static class Config {
|
||||
|
||||
@NotEmpty
|
||||
|
||||
@@ -24,7 +24,6 @@ import java.util.regex.Pattern;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.server.ServerWebExchange;
|
||||
|
||||
/**
|
||||
@@ -90,7 +89,6 @@ public class HeaderRoutePredicateFactory extends AbstractRoutePredicateFactory<H
|
||||
};
|
||||
}
|
||||
|
||||
@Validated
|
||||
public static class Config {
|
||||
|
||||
@NotEmpty
|
||||
|
||||
@@ -27,7 +27,6 @@ import org.springframework.cloud.gateway.support.ServerWebExchangeUtils;
|
||||
import org.springframework.core.style.ToStringCreator;
|
||||
import org.springframework.util.AntPathMatcher;
|
||||
import org.springframework.util.PathMatcher;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.server.ServerWebExchange;
|
||||
|
||||
/**
|
||||
@@ -115,7 +114,6 @@ public class HostRoutePredicateFactory extends AbstractRoutePredicateFactory<Hos
|
||||
};
|
||||
}
|
||||
|
||||
@Validated
|
||||
public static class Config {
|
||||
|
||||
private List<String> patterns = new ArrayList<>();
|
||||
|
||||
@@ -21,7 +21,6 @@ import java.util.List;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.server.ServerWebExchange;
|
||||
|
||||
import static java.util.Arrays.stream;
|
||||
@@ -67,7 +66,6 @@ public class MethodRoutePredicateFactory extends AbstractRoutePredicateFactory<M
|
||||
};
|
||||
}
|
||||
|
||||
@Validated
|
||||
public static class Config {
|
||||
|
||||
private HttpMethod[] methods;
|
||||
|
||||
@@ -26,7 +26,6 @@ import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import org.springframework.core.style.ToStringCreator;
|
||||
import org.springframework.http.server.PathContainer;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.server.ServerWebExchange;
|
||||
import org.springframework.web.util.pattern.PathPattern;
|
||||
import org.springframework.web.util.pattern.PathPattern.PathMatchInfo;
|
||||
@@ -134,7 +133,6 @@ public class PathRoutePredicateFactory extends AbstractRoutePredicateFactory<Pat
|
||||
};
|
||||
}
|
||||
|
||||
@Validated
|
||||
public static class Config {
|
||||
|
||||
private List<String> patterns = new ArrayList<>();
|
||||
|
||||
@@ -23,7 +23,6 @@ import java.util.function.Predicate;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.server.ServerWebExchange;
|
||||
|
||||
/**
|
||||
@@ -84,7 +83,6 @@ public class QueryRoutePredicateFactory extends AbstractRoutePredicateFactory<Qu
|
||||
};
|
||||
}
|
||||
|
||||
@Validated
|
||||
public static class Config {
|
||||
|
||||
@NotEmpty
|
||||
|
||||
@@ -31,7 +31,6 @@ import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import org.springframework.cloud.gateway.support.ipresolver.RemoteAddressResolver;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.server.ServerWebExchange;
|
||||
|
||||
import static org.springframework.cloud.gateway.support.ShortcutConfigurable.ShortcutType.GATHER_LIST;
|
||||
@@ -117,7 +116,6 @@ public class RemoteAddrRoutePredicateFactory
|
||||
sources.add(new IpSubnetFilterRule(ipAddress, cidrPrefix, IpFilterRuleType.ACCEPT));
|
||||
}
|
||||
|
||||
@Validated
|
||||
public static class Config {
|
||||
|
||||
@NotEmpty
|
||||
|
||||
@@ -18,8 +18,13 @@ package org.springframework.cloud.gateway.handler.predicate;
|
||||
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.HashMap;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import jakarta.validation.ConstraintViolation;
|
||||
import jakarta.validation.Validation;
|
||||
import jakarta.validation.Validator;
|
||||
import jakarta.validation.ValidatorFactory;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.cloud.gateway.handler.predicate.AfterRoutePredicateFactory.Config;
|
||||
@@ -99,4 +104,29 @@ public class AfterRoutePredicateFactoryTests {
|
||||
assertThat(predicate.toString()).contains("After: " + config.getDatetime());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConfig() {
|
||||
try(ValidatorFactory factory = Validation.buildDefaultValidatorFactory()) {
|
||||
Validator validator = factory.getValidator();
|
||||
|
||||
Config config = new Config();
|
||||
config.setDatetime(ZonedDateTime.now());
|
||||
|
||||
assertThat(validator.validate(config).isEmpty()).isTrue();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConfigNullField() {
|
||||
try(ValidatorFactory factory = Validation.buildDefaultValidatorFactory()) {
|
||||
Validator validator = factory.getValidator();
|
||||
|
||||
Config config = new Config();
|
||||
Set<ConstraintViolation<Config>> validate = validator.validate(config);
|
||||
|
||||
assertThat(validate.isEmpty()).isFalse();
|
||||
assertThat(validate.size()).isEqualTo(1);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -18,10 +18,17 @@ package org.springframework.cloud.gateway.handler.predicate;
|
||||
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.HashMap;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import jakarta.validation.ConstraintViolation;
|
||||
import jakarta.validation.Validation;
|
||||
import jakarta.validation.Validator;
|
||||
import jakarta.validation.ValidatorFactory;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.cloud.gateway.handler.predicate.BeforeRoutePredicateFactory.Config;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.springframework.cloud.gateway.handler.predicate.BeforeRoutePredicateFactory.DATETIME_KEY;
|
||||
import static org.springframework.cloud.gateway.handler.predicate.BetweenRoutePredicateFactoryTests.bindConfig;
|
||||
@@ -85,17 +92,42 @@ public class BeforeRoutePredicateFactoryTests {
|
||||
|
||||
BeforeRoutePredicateFactory factory = new BeforeRoutePredicateFactory();
|
||||
|
||||
BeforeRoutePredicateFactory.Config config = bindConfig(map, factory);
|
||||
Config config = bindConfig(map, factory);
|
||||
|
||||
return factory.apply(config).test(getExchange());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toStringFormat() {
|
||||
BeforeRoutePredicateFactory.Config config = new BeforeRoutePredicateFactory.Config();
|
||||
Config config = new Config();
|
||||
config.setDatetime(ZonedDateTime.now());
|
||||
Predicate predicate = new BeforeRoutePredicateFactory().apply(config);
|
||||
assertThat(predicate.toString()).contains("Before: " + config.getDatetime());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConfig() {
|
||||
try(ValidatorFactory factory = Validation.buildDefaultValidatorFactory()) {
|
||||
Validator validator = factory.getValidator();
|
||||
|
||||
Config config = new Config();
|
||||
config.setDatetime(ZonedDateTime.now());
|
||||
|
||||
assertThat(validator.validate(config).isEmpty()).isTrue();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConfigNullField() {
|
||||
try(ValidatorFactory factory = Validation.buildDefaultValidatorFactory()) {
|
||||
Validator validator = factory.getValidator();
|
||||
|
||||
Config config = new Config();
|
||||
Set<ConstraintViolation<Config>> validate = validator.validate(config);
|
||||
|
||||
assertThat(validate.isEmpty()).isFalse();
|
||||
assertThat(validate.size()).isEqualTo(1);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -19,11 +19,17 @@ package org.springframework.cloud.gateway.handler.predicate;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.HashMap;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import jakarta.validation.ConstraintViolation;
|
||||
import jakarta.validation.Validation;
|
||||
import jakarta.validation.Validator;
|
||||
import jakarta.validation.ValidatorFactory;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.convert.ApplicationConversionService;
|
||||
import org.springframework.cloud.gateway.handler.predicate.BetweenRoutePredicateFactory.Config;
|
||||
import org.springframework.cloud.gateway.support.ConfigurationService;
|
||||
import org.springframework.cloud.gateway.support.StringToZonedDateTimeConverter;
|
||||
import org.springframework.mock.http.server.reactive.MockServerHttpRequest;
|
||||
@@ -152,14 +158,14 @@ public class BetweenRoutePredicateFactoryTests {
|
||||
|
||||
BetweenRoutePredicateFactory factory = new BetweenRoutePredicateFactory();
|
||||
|
||||
BetweenRoutePredicateFactory.Config config = bindConfig(map, factory);
|
||||
Config config = bindConfig(map, factory);
|
||||
|
||||
return factory.apply(config).test(getExchange());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toStringFormat() {
|
||||
BetweenRoutePredicateFactory.Config config = new BetweenRoutePredicateFactory.Config();
|
||||
Config config = new Config();
|
||||
config.setDatetime1(ZonedDateTime.now());
|
||||
config.setDatetime2(ZonedDateTime.now().plusHours(1));
|
||||
Predicate predicate = new BetweenRoutePredicateFactory().apply(config);
|
||||
@@ -167,4 +173,30 @@ public class BetweenRoutePredicateFactoryTests {
|
||||
.contains("Between: " + config.getDatetime1() + " and " + config.getDatetime2());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConfig() {
|
||||
try(ValidatorFactory factory = Validation.buildDefaultValidatorFactory()) {
|
||||
Validator validator = factory.getValidator();
|
||||
|
||||
Config config = new Config();
|
||||
config.setDatetime1(ZonedDateTime.now());
|
||||
config.setDatetime2(ZonedDateTime.now());
|
||||
|
||||
assertThat(validator.validate(config).isEmpty()).isTrue();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConfigNullField() {
|
||||
try(ValidatorFactory factory = Validation.buildDefaultValidatorFactory()) {
|
||||
Validator validator = factory.getValidator();
|
||||
|
||||
Config config = new Config();
|
||||
Set<ConstraintViolation<Config>> validate = validator.validate(config);
|
||||
|
||||
assertThat(validate.isEmpty()).isFalse();
|
||||
assertThat(validate.size()).isEqualTo(2);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -16,8 +16,13 @@
|
||||
|
||||
package org.springframework.cloud.gateway.handler.predicate;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import jakarta.validation.ConstraintViolation;
|
||||
import jakarta.validation.Validation;
|
||||
import jakarta.validation.Validator;
|
||||
import jakarta.validation.ValidatorFactory;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.cloud.gateway.handler.predicate.CookieRoutePredicateFactory.Config;
|
||||
@@ -64,4 +69,30 @@ public class CookieRoutePredicateFactoryTests extends BaseWebClientTests {
|
||||
assertThat(predicate.toString()).contains("Cookie: name=mycookie regexp=myregexp");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConfig() {
|
||||
try(ValidatorFactory factory = Validation.buildDefaultValidatorFactory()) {
|
||||
Validator validator = factory.getValidator();
|
||||
|
||||
Config config = new Config();
|
||||
config.setName("mycookie");
|
||||
config.setRegexp("myregexp");
|
||||
|
||||
assertThat(validator.validate(config).isEmpty()).isTrue();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConfigNullField() {
|
||||
try(ValidatorFactory factory = Validation.buildDefaultValidatorFactory()) {
|
||||
Validator validator = factory.getValidator();
|
||||
|
||||
Config config = new Config();
|
||||
Set<ConstraintViolation<Config>> validate = validator.validate(config);
|
||||
|
||||
assertThat(validate.isEmpty()).isFalse();
|
||||
assertThat(validate.size()).isEqualTo(2);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -16,8 +16,13 @@
|
||||
|
||||
package org.springframework.cloud.gateway.handler.predicate;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import jakarta.validation.ConstraintViolation;
|
||||
import jakarta.validation.Validation;
|
||||
import jakarta.validation.Validator;
|
||||
import jakarta.validation.ValidatorFactory;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
@@ -106,6 +111,31 @@ public class HeaderRoutePredicateFactoryTests extends BaseWebClientTests {
|
||||
.valueEquals(ROUTE_ID_HEADER, "header_test_comma_separated");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConfig() {
|
||||
try(ValidatorFactory factory = Validation.buildDefaultValidatorFactory()) {
|
||||
Validator validator = factory.getValidator();
|
||||
|
||||
Config config = new Config();
|
||||
config.setHeader("myheader");
|
||||
|
||||
assertThat(validator.validate(config).isEmpty()).isTrue();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConfigNullField() {
|
||||
try(ValidatorFactory factory = Validation.buildDefaultValidatorFactory()) {
|
||||
Validator validator = factory.getValidator();
|
||||
|
||||
Config config = new Config();
|
||||
Set<ConstraintViolation<Config>> validate = validator.validate(config);
|
||||
|
||||
assertThat(validate.isEmpty()).isFalse();
|
||||
assertThat(validate.size()).isEqualTo(1);
|
||||
}
|
||||
}
|
||||
|
||||
@EnableAutoConfiguration
|
||||
@SpringBootConfiguration
|
||||
@Import(DefaultTestConfig.class)
|
||||
|
||||
@@ -16,8 +16,13 @@
|
||||
|
||||
package org.springframework.cloud.gateway.handler.predicate;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import jakarta.validation.ConstraintViolation;
|
||||
import jakarta.validation.Validation;
|
||||
import jakarta.validation.Validator;
|
||||
import jakarta.validation.ValidatorFactory;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
@@ -87,6 +92,31 @@ public class QueryRoutePredicateFactoryTests extends BaseWebClientTests {
|
||||
assertThat(predicate.toString()).contains("Query: param=myparam regexp=myregexp");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConfig() {
|
||||
try(ValidatorFactory factory = Validation.buildDefaultValidatorFactory()) {
|
||||
Validator validator = factory.getValidator();
|
||||
|
||||
Config config = new Config();
|
||||
config.setParam("myparam");
|
||||
|
||||
assertThat(validator.validate(config).isEmpty()).isTrue();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConfigNullField() {
|
||||
try(ValidatorFactory factory = Validation.buildDefaultValidatorFactory()) {
|
||||
Validator validator = factory.getValidator();
|
||||
|
||||
Config config = new Config();
|
||||
Set<ConstraintViolation<Config>> validate = validator.validate(config);
|
||||
|
||||
assertThat(validate.isEmpty()).isFalse();
|
||||
assertThat(validate.size()).isEqualTo(1);
|
||||
}
|
||||
}
|
||||
|
||||
@EnableAutoConfiguration
|
||||
@SpringBootConfiguration
|
||||
@Import(DefaultTestConfig.class)
|
||||
|
||||
@@ -17,8 +17,13 @@
|
||||
package org.springframework.cloud.gateway.handler.predicate;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import jakarta.validation.ConstraintViolation;
|
||||
import jakarta.validation.Validation;
|
||||
import jakarta.validation.Validator;
|
||||
import jakarta.validation.ValidatorFactory;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import reactor.core.publisher.Mono;
|
||||
import reactor.test.StepVerifier;
|
||||
@@ -89,6 +94,31 @@ public class RemoteAddrRoutePredicateFactoryTests extends BaseWebClientTests {
|
||||
assertThat(predicate.toString()).contains("RemoteAddrs: [1.2.3.4, 5.6.7.8]");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConfig() {
|
||||
try(ValidatorFactory factory = Validation.buildDefaultValidatorFactory()) {
|
||||
Validator validator = factory.getValidator();
|
||||
|
||||
Config config = new Config();
|
||||
config.setSources("1.2.3.4", "5.6.7.8");
|
||||
|
||||
assertThat(validator.validate(config).isEmpty()).isTrue();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testConfigNullField() {
|
||||
try(ValidatorFactory factory = Validation.buildDefaultValidatorFactory()) {
|
||||
Validator validator = factory.getValidator();
|
||||
|
||||
Config config = new Config();
|
||||
Set<ConstraintViolation<Config>> validate = validator.validate(config);
|
||||
|
||||
assertThat(validate.isEmpty()).isFalse();
|
||||
assertThat(validate.size()).isEqualTo(1);
|
||||
}
|
||||
}
|
||||
|
||||
@EnableAutoConfiguration
|
||||
@SpringBootConfiguration
|
||||
@Import(DefaultTestConfig.class)
|
||||
|
||||
Reference in New Issue
Block a user