Browse Source

Deprecate KeyValue configuration from Filter and extract it into a config package (#3107)

main
Marta Medio 11 months ago committed by GitHub
parent
commit
1a31026e98
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 10
      spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/factory/AddRequestHeadersIfNotPresentGatewayFilterFactory.java
  2. 5
      spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/support/KeyValueConverter.java
  3. 48
      spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/support/config/KeyValue.java
  4. 36
      spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/support/config/KeyValueConfig.java
  5. 43
      spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/support/config/KeyValueConverter.java

10
spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/filter/factory/AddRequestHeadersIfNotPresentGatewayFilterFactory.java

@ -122,6 +122,11 @@ public class AddRequestHeadersIfNotPresentGatewayFilterFactory @@ -122,6 +122,11 @@ public class AddRequestHeadersIfNotPresentGatewayFilterFactory
return KeyValueConfig.class;
}
/**
* @deprecated in favour of
* {@link org.springframework.cloud.gateway.support.config.KeyValueConfig}
*/
@Deprecated
public static class KeyValueConfig {
private KeyValue[] keyValues;
@ -136,6 +141,11 @@ public class AddRequestHeadersIfNotPresentGatewayFilterFactory @@ -136,6 +141,11 @@ public class AddRequestHeadersIfNotPresentGatewayFilterFactory
}
/**
* @deprecated in favour of
* {@link org.springframework.cloud.gateway.support.config.KeyValue}
*/
@Deprecated
public static class KeyValue {
private final String key;

5
spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/support/KeyValueConverter.java

@ -20,6 +20,11 @@ import org.springframework.cloud.gateway.filter.factory.AddRequestHeadersIfNotPr @@ -20,6 +20,11 @@ import org.springframework.cloud.gateway.filter.factory.AddRequestHeadersIfNotPr
import org.springframework.core.convert.converter.Converter;
import org.springframework.util.StringUtils;
/**
* @deprecated in favour of
* {@link org.springframework.cloud.gateway.support.config.KeyValueConverter}
*/
@Deprecated
public class KeyValueConverter implements Converter<String, KeyValue> {
private static final String INVALID_CONFIGURATION_MESSAGE = "Invalid configuration, expected format is: 'key:value'";

48
spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/support/config/KeyValue.java

@ -0,0 +1,48 @@ @@ -0,0 +1,48 @@
/*
* Copyright 2013-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.cloud.gateway.support.config;
import org.springframework.core.style.ToStringCreator;
/**
* @author Marta Medio
*/
public class KeyValue {
private final String key;
private final String value;
public KeyValue(String key, String value) {
this.key = key;
this.value = value;
}
public String getKey() {
return key;
}
public String getValue() {
return value;
}
@Override
public String toString() {
return new ToStringCreator(this).append("name", key).append("value", value).toString();
}
}

36
spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/support/config/KeyValueConfig.java

@ -0,0 +1,36 @@ @@ -0,0 +1,36 @@
/*
* Copyright 2013-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.cloud.gateway.support.config;
/**
* Adds a new format of configuration for filters. - Filter: key:value,key1:value1
*
* @author Marta Medio
*/
public class KeyValueConfig {
private KeyValue[] keyValues;
public KeyValue[] getKeyValues() {
return keyValues;
}
public void setKeyValues(KeyValue[] keyValues) {
this.keyValues = keyValues;
}
}

43
spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/support/config/KeyValueConverter.java

@ -0,0 +1,43 @@ @@ -0,0 +1,43 @@
/*
* Copyright 2013-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.cloud.gateway.support.config;
import org.springframework.core.convert.converter.Converter;
import org.springframework.util.StringUtils;
/**
* @author Marta Medio
*/
public class KeyValueConverter implements Converter<String, KeyValue> {
private static final String INVALID_CONFIGURATION_MESSAGE = "Invalid configuration, expected format is: 'key:value'";
@Override
public KeyValue convert(String source) throws IllegalArgumentException {
try {
String[] split = source.split(":");
if (source.contains(":") && StringUtils.hasText(split[0])) {
return new KeyValue(split[0], split.length == 1 ? "" : split[1]);
}
throw new IllegalArgumentException(INVALID_CONFIGURATION_MESSAGE);
}
catch (ArrayIndexOutOfBoundsException e) {
throw new IllegalArgumentException(INVALID_CONFIGURATION_MESSAGE);
}
}
}
Loading…
Cancel
Save