Replace ClientHttpRequestFactorySettings.Redirects with HttpRedirects
Closes gh-45505
This commit is contained in:
@@ -26,7 +26,6 @@ import org.springframework.boot.autoconfigure.http.client.AbstractHttpClientProp
|
||||
import org.springframework.boot.autoconfigure.http.client.AbstractHttpRequestFactoryProperties.Factory;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings.Redirects;
|
||||
import org.springframework.boot.http.client.HttpRedirects;
|
||||
import org.springframework.boot.ssl.SslBundle;
|
||||
import org.springframework.boot.ssl.SslBundles;
|
||||
@@ -64,7 +63,7 @@ public final class ClientHttpRequestFactories {
|
||||
StringUtils::hasLength);
|
||||
SslBundle sslBundle = (StringUtils.hasLength(sslBundleName))
|
||||
? this.sslBundles.getObject().getBundle(sslBundleName) : null;
|
||||
return new ClientHttpRequestFactorySettings(Redirects.of(redirects), connectTimeout, readTimeout, sslBundle);
|
||||
return new ClientHttpRequestFactorySettings(redirects, connectTimeout, readTimeout, sslBundle);
|
||||
}
|
||||
|
||||
private <T> T getProperty(Function<AbstractHttpRequestFactoryProperties, T> accessor) {
|
||||
|
||||
@@ -23,7 +23,6 @@ import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.ObjectFactory;
|
||||
import org.springframework.boot.autoconfigure.http.client.AbstractHttpRequestFactoryProperties.Factory;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings.Redirects;
|
||||
import org.springframework.boot.http.client.HttpComponentsClientHttpRequestFactoryBuilder;
|
||||
import org.springframework.boot.http.client.HttpRedirects;
|
||||
import org.springframework.boot.http.client.JettyClientHttpRequestFactoryBuilder;
|
||||
@@ -88,7 +87,7 @@ class ClientHttpRequestFactoriesTests {
|
||||
p3.getSsl().setBundle("p3");
|
||||
ClientHttpRequestFactories factories = new ClientHttpRequestFactories(this.sslBundles, p1, p2, p3);
|
||||
ClientHttpRequestFactorySettings settings = factories.settings();
|
||||
assertThat(settings).isEqualTo(new ClientHttpRequestFactorySettings(Redirects.DONT_FOLLOW,
|
||||
assertThat(settings).isEqualTo(new ClientHttpRequestFactorySettings(HttpRedirects.DONT_FOLLOW,
|
||||
Duration.ofSeconds(1), Duration.ofSeconds(2), this.bundleRegistry.getBundle("p2")));
|
||||
}
|
||||
|
||||
|
||||
@@ -26,8 +26,8 @@ import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.autoconfigure.ssl.SslAutoConfiguration;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings.Redirects;
|
||||
import org.springframework.boot.http.client.HttpComponentsClientHttpRequestFactoryBuilder;
|
||||
import org.springframework.boot.http.client.HttpRedirects;
|
||||
import org.springframework.boot.http.client.JdkClientHttpRequestFactoryBuilder;
|
||||
import org.springframework.boot.http.client.JettyClientHttpRequestFactoryBuilder;
|
||||
import org.springframework.boot.http.client.ReactorClientHttpRequestFactoryBuilder;
|
||||
@@ -73,7 +73,7 @@ class HttpClientAutoConfigurationTests {
|
||||
"spring.http.client.read-timeout=20s", "spring.http.client.ssl.bundle=test")
|
||||
.run((context) -> {
|
||||
ClientHttpRequestFactorySettings settings = context.getBean(ClientHttpRequestFactorySettings.class);
|
||||
assertThat(settings.redirects()).isEqualTo(Redirects.DONT_FOLLOW);
|
||||
assertThat(settings.redirects()).isEqualTo(HttpRedirects.DONT_FOLLOW);
|
||||
assertThat(settings.connectTimeout()).isEqualTo(Duration.ofSeconds(10));
|
||||
assertThat(settings.readTimeout()).isEqualTo(Duration.ofSeconds(20));
|
||||
assertThat(settings.sslBundle().getKey().getAlias()).isEqualTo("alias1");
|
||||
@@ -87,7 +87,7 @@ class HttpClientAutoConfigurationTests {
|
||||
"spring.http.client.read-timeout=20s", "spring.http.client.ssl.bundle=test")
|
||||
.run((context) -> {
|
||||
ClientHttpRequestFactorySettings settings = context.getBean(ClientHttpRequestFactorySettings.class);
|
||||
assertThat(settings.redirects()).isEqualTo(Redirects.DONT_FOLLOW);
|
||||
assertThat(settings.redirects()).isEqualTo(HttpRedirects.DONT_FOLLOW);
|
||||
assertThat(settings.connectTimeout()).isEqualTo(Duration.ofSeconds(10));
|
||||
assertThat(settings.readTimeout()).isEqualTo(Duration.ofSeconds(20));
|
||||
assertThat(settings.sslBundle().getKey().getAlias()).isEqualTo("alias1");
|
||||
|
||||
@@ -33,7 +33,7 @@ import org.springframework.boot.autoconfigure.http.client.HttpClientAutoConfigur
|
||||
import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings.Redirects;
|
||||
import org.springframework.boot.http.client.HttpRedirects;
|
||||
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
|
||||
import org.springframework.boot.web.client.RestClientCustomizer;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@@ -212,7 +212,7 @@ class HttpServiceClientAutoConfigurationTests {
|
||||
|
||||
@Bean
|
||||
ClientHttpRequestFactorySettings requestFactorySettings() {
|
||||
return ClientHttpRequestFactorySettings.defaults().withRedirects(Redirects.DONT_FOLLOW);
|
||||
return ClientHttpRequestFactorySettings.defaults().withRedirects(HttpRedirects.DONT_FOLLOW);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ import org.mockito.MockitoAnnotations;
|
||||
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings.Redirects;
|
||||
import org.springframework.boot.http.client.HttpRedirects;
|
||||
import org.springframework.boot.ssl.SslBundle;
|
||||
import org.springframework.boot.ssl.SslBundles;
|
||||
import org.springframework.http.client.ClientHttpRequestFactory;
|
||||
@@ -47,7 +47,7 @@ class AutoConfiguredRestClientSslTests {
|
||||
|
||||
private final ClientHttpRequestFactorySettings settings = ClientHttpRequestFactorySettings
|
||||
.ofSslBundle(mock(SslBundle.class, "Default SslBundle"))
|
||||
.withRedirects(Redirects.DONT_FOLLOW)
|
||||
.withRedirects(HttpRedirects.DONT_FOLLOW)
|
||||
.withReadTimeout(Duration.ofSeconds(10))
|
||||
.withConnectTimeout(Duration.ofSeconds(30));
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ import org.springframework.boot.autoconfigure.http.client.HttpClientAutoConfigur
|
||||
import org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings.Redirects;
|
||||
import org.springframework.boot.http.client.HttpRedirects;
|
||||
import org.springframework.boot.ssl.SslBundle;
|
||||
import org.springframework.boot.ssl.SslBundles;
|
||||
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
|
||||
@@ -77,7 +77,7 @@ class RestClientAutoConfigurationTests {
|
||||
void shouldSupplyRestClientSslIfSslBundlesIsThereWithCustomHttpSettingsAndBuilder() {
|
||||
SslBundles sslBundles = mock(SslBundles.class);
|
||||
ClientHttpRequestFactorySettings clientHttpRequestFactorySettings = ClientHttpRequestFactorySettings.defaults()
|
||||
.withRedirects(Redirects.DONT_FOLLOW)
|
||||
.withRedirects(HttpRedirects.DONT_FOLLOW)
|
||||
.withConnectTimeout(Duration.ofHours(1))
|
||||
.withReadTimeout(Duration.ofDays(1))
|
||||
.withSslBundle(mock(SslBundle.class));
|
||||
@@ -217,7 +217,7 @@ class RestClientAutoConfigurationTests {
|
||||
@Test
|
||||
void shouldSupplyRestClientBuilderConfigurerWithCustomSettings() {
|
||||
ClientHttpRequestFactorySettings clientHttpRequestFactorySettings = ClientHttpRequestFactorySettings.defaults()
|
||||
.withRedirects(Redirects.DONT_FOLLOW);
|
||||
.withRedirects(HttpRedirects.DONT_FOLLOW);
|
||||
ClientHttpRequestFactoryBuilder<?> clientHttpRequestFactoryBuilder = mock(
|
||||
ClientHttpRequestFactoryBuilder.class);
|
||||
RestClientCustomizer customizer1 = mock(RestClientCustomizer.class);
|
||||
|
||||
@@ -49,8 +49,8 @@ import org.apache.hc.core5.ssl.TrustStrategy;
|
||||
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings.Redirects;
|
||||
import org.springframework.boot.http.client.HttpComponentsClientHttpRequestFactoryBuilder;
|
||||
import org.springframework.boot.http.client.HttpRedirects;
|
||||
import org.springframework.boot.ssl.SslBundle;
|
||||
import org.springframework.boot.web.client.RestTemplateBuilder;
|
||||
import org.springframework.boot.web.client.RootUriTemplateHandler;
|
||||
@@ -164,7 +164,7 @@ public class TestRestTemplate {
|
||||
builder = builder.requestFactoryBuilder(applyHttpClientOptions(
|
||||
(HttpComponentsClientHttpRequestFactoryBuilder) requestFactoryBuilder, httpClientOptions));
|
||||
if (HttpClientOption.ENABLE_REDIRECTS.isPresent(httpClientOptions)) {
|
||||
builder = builder.redirects(Redirects.FOLLOW);
|
||||
builder = builder.redirects(HttpRedirects.FOLLOW);
|
||||
}
|
||||
}
|
||||
if (username != null || password != null) {
|
||||
@@ -976,14 +976,14 @@ public class TestRestTemplate {
|
||||
|
||||
/**
|
||||
* Creates a new {@code TestRestTemplate} with the same configuration as this one,
|
||||
* except that it will apply the given {@link Redirects}. The request factory used is
|
||||
* a new instance of the underlying {@link RestTemplate}'s request factory type (when
|
||||
* possible).
|
||||
* except that it will apply the given {@link HttpRedirects}. The request factory used
|
||||
* is a new instance of the underlying {@link RestTemplate}'s request factory type
|
||||
* (when possible).
|
||||
* @param redirects the new redirect settings
|
||||
* @return the new template
|
||||
* @since 3.5.0
|
||||
*/
|
||||
public TestRestTemplate withRedirects(Redirects redirects) {
|
||||
public TestRestTemplate withRedirects(HttpRedirects redirects) {
|
||||
return withRequestFactorySettings((settings) -> settings.withRedirects(redirects));
|
||||
}
|
||||
|
||||
@@ -1060,7 +1060,7 @@ public class TestRestTemplate {
|
||||
/**
|
||||
* Enable redirects.
|
||||
* @deprecated since 3.5.0 for removal in 4.0.0 in favor of
|
||||
* {@link TestRestTemplate#withRedirects(Redirects)}
|
||||
* {@link TestRestTemplate#withRedirects(HttpRedirects)}
|
||||
*/
|
||||
@Deprecated(since = "3.5.0", forRemoval = true)
|
||||
ENABLE_REDIRECTS,
|
||||
@@ -1112,7 +1112,7 @@ public class TestRestTemplate {
|
||||
ClientHttpRequestFactorySettings settings) {
|
||||
this.cookieSpec = (HttpClientOption.ENABLE_COOKIES.isPresent(httpClientOptions) ? StandardCookieSpec.STRICT
|
||||
: StandardCookieSpec.IGNORE);
|
||||
this.enableRedirects = settings.redirects() != Redirects.DONT_FOLLOW;
|
||||
this.enableRedirects = settings.redirects() != HttpRedirects.DONT_FOLLOW;
|
||||
boolean ssl = HttpClientOption.SSL.isPresent(httpClientOptions);
|
||||
if (settings.readTimeout() != null || ssl) {
|
||||
setHttpClient(createHttpClient(settings.readTimeout(), ssl));
|
||||
|
||||
@@ -34,7 +34,7 @@ import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings.Redirects;
|
||||
import org.springframework.boot.http.client.HttpRedirects;
|
||||
import org.springframework.boot.test.web.client.TestRestTemplate.HttpClientOption;
|
||||
import org.springframework.boot.web.client.RestTemplateBuilder;
|
||||
import org.springframework.core.ParameterizedTypeReference;
|
||||
@@ -152,9 +152,9 @@ class TestRestTemplateTests {
|
||||
void jdkBuilderCanBeSpecifiedWithSpecificRedirects() {
|
||||
RestTemplateBuilder builder = new RestTemplateBuilder()
|
||||
.requestFactoryBuilder(ClientHttpRequestFactoryBuilder.jdk());
|
||||
TestRestTemplate templateWithRedirects = new TestRestTemplate(builder.redirects(Redirects.FOLLOW));
|
||||
TestRestTemplate templateWithRedirects = new TestRestTemplate(builder.redirects(HttpRedirects.FOLLOW));
|
||||
assertThat(getJdkHttpClient(templateWithRedirects).followRedirects()).isEqualTo(Redirect.NORMAL);
|
||||
TestRestTemplate templateWithoutRedirects = new TestRestTemplate(builder.redirects(Redirects.DONT_FOLLOW));
|
||||
TestRestTemplate templateWithoutRedirects = new TestRestTemplate(builder.redirects(HttpRedirects.DONT_FOLLOW));
|
||||
assertThat(getJdkHttpClient(templateWithoutRedirects).followRedirects()).isEqualTo(Redirect.NEVER);
|
||||
}
|
||||
|
||||
@@ -167,8 +167,9 @@ class TestRestTemplateTests {
|
||||
assertThat(getRedirectStrategy(null, HttpClientOption.ENABLE_REDIRECTS)).matches(this::isFollowStrategy);
|
||||
assertThat(getRedirectStrategy(builder)).matches(this::isFollowStrategy);
|
||||
assertThat(getRedirectStrategy(builder, HttpClientOption.ENABLE_REDIRECTS)).matches(this::isFollowStrategy);
|
||||
assertThat(getRedirectStrategy(builder.redirects(Redirects.DONT_FOLLOW))).matches(this::isDontFollowStrategy);
|
||||
assertThat(getRedirectStrategy(builder.redirects(Redirects.DONT_FOLLOW), HttpClientOption.ENABLE_REDIRECTS))
|
||||
assertThat(getRedirectStrategy(builder.redirects(HttpRedirects.DONT_FOLLOW)))
|
||||
.matches(this::isDontFollowStrategy);
|
||||
assertThat(getRedirectStrategy(builder.redirects(HttpRedirects.DONT_FOLLOW), HttpClientOption.ENABLE_REDIRECTS))
|
||||
.matches(this::isFollowStrategy);
|
||||
}
|
||||
|
||||
@@ -176,11 +177,11 @@ class TestRestTemplateTests {
|
||||
void withRequestFactorySettingsRedirectsForHttpComponents() {
|
||||
TestRestTemplate template = new TestRestTemplate();
|
||||
assertThat(getRedirectStrategy(template)).matches(this::isFollowStrategy);
|
||||
assertThat(getRedirectStrategy(template
|
||||
.withRequestFactorySettings(ClientHttpRequestFactorySettings.defaults().withRedirects(Redirects.FOLLOW))))
|
||||
assertThat(getRedirectStrategy(template.withRequestFactorySettings(
|
||||
ClientHttpRequestFactorySettings.defaults().withRedirects(HttpRedirects.FOLLOW))))
|
||||
.matches(this::isFollowStrategy);
|
||||
assertThat(getRedirectStrategy(template.withRequestFactorySettings(
|
||||
ClientHttpRequestFactorySettings.defaults().withRedirects(Redirects.DONT_FOLLOW))))
|
||||
ClientHttpRequestFactorySettings.defaults().withRedirects(HttpRedirects.DONT_FOLLOW))))
|
||||
.matches(this::isDontFollowStrategy);
|
||||
}
|
||||
|
||||
@@ -188,8 +189,8 @@ class TestRestTemplateTests {
|
||||
void withRedirects() {
|
||||
TestRestTemplate template = new TestRestTemplate();
|
||||
assertThat(getRedirectStrategy(template)).matches(this::isFollowStrategy);
|
||||
assertThat(getRedirectStrategy(template.withRedirects(Redirects.FOLLOW))).matches(this::isFollowStrategy);
|
||||
assertThat(getRedirectStrategy(template.withRedirects(Redirects.DONT_FOLLOW)))
|
||||
assertThat(getRedirectStrategy(template.withRedirects(HttpRedirects.FOLLOW))).matches(this::isFollowStrategy);
|
||||
assertThat(getRedirectStrategy(template.withRedirects(HttpRedirects.DONT_FOLLOW)))
|
||||
.matches(this::isDontFollowStrategy);
|
||||
}
|
||||
|
||||
@@ -199,7 +200,7 @@ class TestRestTemplateTests {
|
||||
new RestTemplateBuilder().requestFactoryBuilder(ClientHttpRequestFactoryBuilder.jdk()));
|
||||
assertThat(getJdkHttpClient(template).followRedirects()).isEqualTo(Redirect.NORMAL);
|
||||
assertThat(getJdkHttpClient(template.withRequestFactorySettings(
|
||||
ClientHttpRequestFactorySettings.defaults().withRedirects(Redirects.DONT_FOLLOW)))
|
||||
ClientHttpRequestFactorySettings.defaults().withRedirects(HttpRedirects.DONT_FOLLOW)))
|
||||
.followRedirects()).isEqualTo(Redirect.NEVER);
|
||||
}
|
||||
|
||||
@@ -209,7 +210,7 @@ class TestRestTemplateTests {
|
||||
new RestTemplateBuilder().requestFactoryBuilder(ClientHttpRequestFactoryBuilder.jdk()));
|
||||
assertThat(getJdkHttpClient(template).followRedirects()).isEqualTo(Redirect.NORMAL);
|
||||
assertThat(getJdkHttpClient(
|
||||
template.withRequestFactorySettings((settings) -> settings.withRedirects(Redirects.DONT_FOLLOW)))
|
||||
template.withRequestFactorySettings((settings) -> settings.withRedirects(HttpRedirects.DONT_FOLLOW)))
|
||||
.followRedirects()).isEqualTo(Redirect.NEVER);
|
||||
}
|
||||
|
||||
|
||||
@@ -74,8 +74,8 @@ abstract class AbstractClientHttpRequestFactoryBuilder<T extends ClientHttpReque
|
||||
protected abstract T createClientHttpRequestFactory(ClientHttpRequestFactorySettings settings);
|
||||
|
||||
protected final HttpClientSettings asHttpClientSettings(ClientHttpRequestFactorySettings settings) {
|
||||
return (settings != null) ? new HttpClientSettings(settings.redirects().httpClientRedirects(),
|
||||
settings.connectTimeout(), settings.readTimeout(), settings.sslBundle()) : null;
|
||||
return (settings != null) ? new HttpClientSettings(settings.redirects(), settings.connectTimeout(),
|
||||
settings.readTimeout(), settings.sslBundle()) : null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -35,14 +35,14 @@ import org.springframework.http.client.ClientHttpRequestFactory;
|
||||
* @since 3.4.0
|
||||
* @see ClientHttpRequestFactoryBuilder
|
||||
*/
|
||||
public record ClientHttpRequestFactorySettings(Redirects redirects, Duration connectTimeout, Duration readTimeout,
|
||||
public record ClientHttpRequestFactorySettings(HttpRedirects redirects, Duration connectTimeout, Duration readTimeout,
|
||||
SslBundle sslBundle) {
|
||||
|
||||
private static final ClientHttpRequestFactorySettings defaults = new ClientHttpRequestFactorySettings(null, null,
|
||||
null, null);
|
||||
|
||||
public ClientHttpRequestFactorySettings {
|
||||
redirects = (redirects != null) ? redirects : Redirects.FOLLOW_WHEN_POSSIBLE;
|
||||
redirects = (redirects != null) ? redirects : HttpRedirects.FOLLOW_WHEN_POSSIBLE;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -92,7 +92,7 @@ public record ClientHttpRequestFactorySettings(Redirects redirects, Duration con
|
||||
* @param redirects the new redirects setting
|
||||
* @return a new {@link ClientHttpRequestFactorySettings} instance
|
||||
*/
|
||||
public ClientHttpRequestFactorySettings withRedirects(Redirects redirects) {
|
||||
public ClientHttpRequestFactorySettings withRedirects(HttpRedirects redirects) {
|
||||
return new ClientHttpRequestFactorySettings(redirects, this.connectTimeout, this.readTimeout, this.sslBundle);
|
||||
}
|
||||
|
||||
@@ -115,50 +115,4 @@ public record ClientHttpRequestFactorySettings(Redirects redirects, Duration con
|
||||
return defaults;
|
||||
}
|
||||
|
||||
/**
|
||||
* Redirect strategies.
|
||||
*/
|
||||
public enum Redirects {
|
||||
|
||||
/**
|
||||
* Follow redirects (if the underlying library has support).
|
||||
*/
|
||||
FOLLOW_WHEN_POSSIBLE(HttpRedirects.FOLLOW_WHEN_POSSIBLE),
|
||||
|
||||
/**
|
||||
* Follow redirects (fail if the underlying library has no support).
|
||||
*/
|
||||
FOLLOW(HttpRedirects.FOLLOW),
|
||||
|
||||
/**
|
||||
* Don't follow redirects (fail if the underlying library has no support).
|
||||
*/
|
||||
DONT_FOLLOW(HttpRedirects.DONT_FOLLOW);
|
||||
|
||||
private final HttpRedirects httpClientRedirects;
|
||||
|
||||
Redirects(HttpRedirects httpClientRedirects) {
|
||||
this.httpClientRedirects = httpClientRedirects;
|
||||
}
|
||||
|
||||
HttpRedirects httpClientRedirects() {
|
||||
return this.httpClientRedirects;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the related {@link Redirects} for the given {@link HttpRedirects}.
|
||||
* @param httpRedirects the HTTP redirects
|
||||
* @return the related redirects
|
||||
* @since 3.5.0
|
||||
*/
|
||||
public static Redirects of(HttpRedirects httpRedirects) {
|
||||
return (httpRedirects != null) ? switch (httpRedirects) {
|
||||
case FOLLOW_WHEN_POSSIBLE -> FOLLOW_WHEN_POSSIBLE;
|
||||
case FOLLOW -> FOLLOW;
|
||||
case DONT_FOLLOW -> DONT_FOLLOW;
|
||||
} : null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -24,10 +24,8 @@ import org.apache.hc.core5.http.HttpRequest;
|
||||
import org.apache.hc.core5.http.HttpResponse;
|
||||
import org.apache.hc.core5.http.protocol.HttpContext;
|
||||
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings.Redirects;
|
||||
|
||||
/**
|
||||
* Adapts {@link Redirects} to an
|
||||
* Adapts {@link HttpRedirects} to an
|
||||
* <a href="https://hc.apache.org/httpcomponents-client-ga/">Apache HttpComponents</a>
|
||||
* {@link RedirectStrategy}.
|
||||
*
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2024 the original author or authors.
|
||||
* Copyright 2012-2025 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.
|
||||
@@ -23,7 +23,6 @@ import java.time.Duration;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import org.springframework.boot.context.properties.PropertyMapper;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings.Redirects;
|
||||
import org.springframework.http.client.AbstractClientHttpRequestFactoryWrapper;
|
||||
import org.springframework.http.client.ClientHttpRequestFactory;
|
||||
import org.springframework.util.Assert;
|
||||
@@ -75,7 +74,7 @@ final class ReflectiveComponentsClientHttpRequestFactoryBuilder<T extends Client
|
||||
|
||||
private void configure(ClientHttpRequestFactory requestFactory, ClientHttpRequestFactorySettings settings) {
|
||||
Assert.state(settings.sslBundle() == null, "Unable to set SSL bundle using reflection");
|
||||
Assert.state(settings.redirects() == Redirects.FOLLOW_WHEN_POSSIBLE,
|
||||
Assert.state(settings.redirects() == HttpRedirects.FOLLOW_WHEN_POSSIBLE,
|
||||
"Unable to set redirect follow using reflection");
|
||||
ClientHttpRequestFactory unwrapped = unwrapRequestFactoryIfNecessary(requestFactory);
|
||||
PropertyMapper map = PropertyMapper.get().alwaysApplyingWhenNonNull();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2024 the original author or authors.
|
||||
* Copyright 2012-2025 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.
|
||||
@@ -27,7 +27,6 @@ import javax.net.ssl.HttpsURLConnection;
|
||||
import javax.net.ssl.SSLSocketFactory;
|
||||
|
||||
import org.springframework.boot.context.properties.PropertyMapper;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings.Redirects;
|
||||
import org.springframework.boot.ssl.SslBundle;
|
||||
import org.springframework.http.client.SimpleClientHttpRequestFactory;
|
||||
import org.springframework.util.Assert;
|
||||
@@ -93,7 +92,7 @@ public final class SimpleClientHttpRequestFactoryBuilder
|
||||
SSLSocketFactory socketFactory = this.settings.sslBundle().createSslContext().getSocketFactory();
|
||||
secureConnection.setSSLSocketFactory(socketFactory);
|
||||
}
|
||||
if (this.settings.redirects() == Redirects.DONT_FOLLOW) {
|
||||
if (this.settings.redirects() == HttpRedirects.DONT_FOLLOW) {
|
||||
connection.setInstanceFollowRedirects(false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ import java.util.function.UnaryOperator;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings.Redirects;
|
||||
import org.springframework.boot.http.client.HttpRedirects;
|
||||
import org.springframework.boot.ssl.SslBundle;
|
||||
import org.springframework.http.client.ClientHttpRequest;
|
||||
import org.springframework.http.client.ClientHttpRequestFactory;
|
||||
@@ -524,9 +524,9 @@ public class RestTemplateBuilder {
|
||||
* Sets the redirect strategy on the underlying {@link ClientHttpRequestFactory}.
|
||||
* @param redirects the redirect strategy
|
||||
* @return a new builder instance.
|
||||
* @since 3.4.1
|
||||
* @since 4.0.0
|
||||
*/
|
||||
public RestTemplateBuilder redirects(Redirects redirects) {
|
||||
public RestTemplateBuilder redirects(HttpRedirects redirects) {
|
||||
return new RestTemplateBuilder(this.requestFactorySettings.withRedirects(redirects), this.detectRequestFactory,
|
||||
this.rootUri, this.messageConverters, this.interceptors, this.requestFactoryBuilder,
|
||||
this.uriTemplateHandler, this.errorHandler, this.basicAuthentication, this.defaultHeaders,
|
||||
|
||||
@@ -34,7 +34,6 @@ import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.ValueSource;
|
||||
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings.Redirects;
|
||||
import org.springframework.boot.ssl.SslBundle;
|
||||
import org.springframework.boot.ssl.SslBundleKey;
|
||||
import org.springframework.boot.ssl.SslOptions;
|
||||
@@ -159,7 +158,7 @@ abstract class AbstractClientHttpRequestFactoryBuilderTests<T extends ClientHttp
|
||||
@ValueSource(strings = { "GET", "POST", "PUT", "PATCH", "DELETE" })
|
||||
void redirectFollow(String httpMethod) throws Exception {
|
||||
ClientHttpRequestFactorySettings settings = ClientHttpRequestFactorySettings.defaults()
|
||||
.withRedirects(Redirects.FOLLOW);
|
||||
.withRedirects(HttpRedirects.FOLLOW);
|
||||
testRedirect(settings, HttpMethod.valueOf(httpMethod), this::getExpectedRedirect);
|
||||
}
|
||||
|
||||
@@ -167,7 +166,7 @@ abstract class AbstractClientHttpRequestFactoryBuilderTests<T extends ClientHttp
|
||||
@ValueSource(strings = { "GET", "POST", "PUT", "PATCH", "DELETE" })
|
||||
void redirectDontFollow(String httpMethod) throws Exception {
|
||||
ClientHttpRequestFactorySettings settings = ClientHttpRequestFactorySettings.defaults()
|
||||
.withRedirects(Redirects.DONT_FOLLOW);
|
||||
.withRedirects(HttpRedirects.DONT_FOLLOW);
|
||||
testRedirect(settings, HttpMethod.valueOf(httpMethod), ALWAYS_FOUND);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2024 the original author or authors.
|
||||
* Copyright 2012-2025 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.
|
||||
@@ -20,7 +20,6 @@ import java.time.Duration;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings.Redirects;
|
||||
import org.springframework.boot.ssl.SslBundle;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
@@ -38,7 +37,7 @@ class ClientHttpRequestFactorySettingsTests {
|
||||
@Test
|
||||
void defaults() {
|
||||
ClientHttpRequestFactorySettings settings = ClientHttpRequestFactorySettings.defaults();
|
||||
assertThat(settings.redirects()).isEqualTo(Redirects.FOLLOW_WHEN_POSSIBLE);
|
||||
assertThat(settings.redirects()).isEqualTo(HttpRedirects.FOLLOW_WHEN_POSSIBLE);
|
||||
assertThat(settings.connectTimeout()).isNull();
|
||||
assertThat(settings.readTimeout()).isNull();
|
||||
assertThat(settings.sslBundle()).isNull();
|
||||
@@ -47,7 +46,7 @@ class ClientHttpRequestFactorySettingsTests {
|
||||
@Test
|
||||
void createWithNullsUsesDefaults() {
|
||||
ClientHttpRequestFactorySettings settings = new ClientHttpRequestFactorySettings(null, null, null, null);
|
||||
assertThat(settings.redirects()).isEqualTo(Redirects.FOLLOW_WHEN_POSSIBLE);
|
||||
assertThat(settings.redirects()).isEqualTo(HttpRedirects.FOLLOW_WHEN_POSSIBLE);
|
||||
assertThat(settings.connectTimeout()).isNull();
|
||||
assertThat(settings.readTimeout()).isNull();
|
||||
assertThat(settings.sslBundle()).isNull();
|
||||
@@ -84,8 +83,8 @@ class ClientHttpRequestFactorySettingsTests {
|
||||
@Test
|
||||
void withRedirectsReturnsInstanceWithUpdatedRedirect() {
|
||||
ClientHttpRequestFactorySettings settings = ClientHttpRequestFactorySettings.defaults()
|
||||
.withRedirects(Redirects.DONT_FOLLOW);
|
||||
assertThat(settings.redirects()).isEqualTo(Redirects.DONT_FOLLOW);
|
||||
.withRedirects(HttpRedirects.DONT_FOLLOW);
|
||||
assertThat(settings.redirects()).isEqualTo(HttpRedirects.DONT_FOLLOW);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2024 the original author or authors.
|
||||
* Copyright 2012-2025 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.
|
||||
@@ -22,7 +22,6 @@ import java.time.Duration;
|
||||
import org.eclipse.jetty.client.HttpClient;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings.Redirects;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.http.client.BufferingClientHttpRequestFactory;
|
||||
import org.springframework.http.client.ClientHttpRequest;
|
||||
@@ -56,7 +55,7 @@ class ReflectiveComponentsClientHttpRequestFactoryBuilderTests
|
||||
@Override
|
||||
void redirectFollow(String httpMethod) throws Exception {
|
||||
ClientHttpRequestFactorySettings settings = ClientHttpRequestFactorySettings.defaults()
|
||||
.withRedirects(Redirects.FOLLOW);
|
||||
.withRedirects(HttpRedirects.FOLLOW);
|
||||
assertThatIllegalStateException().isThrownBy(() -> ofTestRequestFactory().build(settings))
|
||||
.withMessage("Unable to set redirect follow using reflection");
|
||||
}
|
||||
@@ -64,7 +63,7 @@ class ReflectiveComponentsClientHttpRequestFactoryBuilderTests
|
||||
@Override
|
||||
void redirectDontFollow(String httpMethod) throws Exception {
|
||||
ClientHttpRequestFactorySettings settings = ClientHttpRequestFactorySettings.defaults()
|
||||
.withRedirects(Redirects.DONT_FOLLOW);
|
||||
.withRedirects(HttpRedirects.DONT_FOLLOW);
|
||||
assertThatIllegalStateException().isThrownBy(() -> ofTestRequestFactory().build(settings))
|
||||
.withMessage("Unable to set redirect follow using reflection");
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings.Redirects;
|
||||
import org.springframework.boot.http.client.HttpRedirects;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.http.MediaType;
|
||||
@@ -490,9 +490,9 @@ class RestTemplateBuilderTests {
|
||||
|
||||
@Test
|
||||
void configureRedirects() {
|
||||
assertThat(this.builder.redirects(Redirects.DONT_FOLLOW)).extracting("requestFactorySettings")
|
||||
assertThat(this.builder.redirects(HttpRedirects.DONT_FOLLOW)).extracting("requestFactorySettings")
|
||||
.extracting("redirects")
|
||||
.isSameAs(Redirects.DONT_FOLLOW);
|
||||
.isSameAs(HttpRedirects.DONT_FOLLOW);
|
||||
}
|
||||
|
||||
private ClientHttpRequest createRequest(RestTemplate template) {
|
||||
|
||||
@@ -24,7 +24,7 @@ import java.util.Objects;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings.Redirects;
|
||||
import org.springframework.boot.http.client.HttpRedirects;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.boot.test.web.client.TestRestTemplate;
|
||||
import org.springframework.boot.test.web.server.LocalServerPort;
|
||||
@@ -94,7 +94,7 @@ class SampleOAuth2AuthorizationServerApplicationTests {
|
||||
|
||||
@Test
|
||||
void anonymousShouldRedirectToLogin() {
|
||||
ResponseEntity<String> entity = this.restTemplate.withRedirects(Redirects.DONT_FOLLOW)
|
||||
ResponseEntity<String> entity = this.restTemplate.withRedirects(HttpRedirects.DONT_FOLLOW)
|
||||
.getForEntity("/", String.class);
|
||||
assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.FOUND);
|
||||
assertThat(entity.getHeaders().getLocation()).isEqualTo(URI.create("http://localhost:" + this.port + "/login"));
|
||||
@@ -160,7 +160,7 @@ class SampleOAuth2AuthorizationServerApplicationTests {
|
||||
body.add(OAuth2ParameterNames.GRANT_TYPE, AuthorizationGrantType.CLIENT_CREDENTIALS.getValue());
|
||||
body.add(OAuth2ParameterNames.SCOPE, "message.read message.write");
|
||||
HttpEntity<Object> request = new HttpEntity<>(body, headers);
|
||||
ResponseEntity<Map<String, Object>> entity = this.restTemplate.withRedirects(Redirects.DONT_FOLLOW)
|
||||
ResponseEntity<Map<String, Object>> entity = this.restTemplate.withRedirects(HttpRedirects.DONT_FOLLOW)
|
||||
.exchange("/token", HttpMethod.POST, request, MAP_TYPE_REFERENCE);
|
||||
assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.FOUND);
|
||||
assertThat(entity.getHeaders().getLocation()).isEqualTo(URI.create("http://localhost:" + this.port + "/login"));
|
||||
|
||||
@@ -21,7 +21,7 @@ import java.net.URI;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings.Redirects;
|
||||
import org.springframework.boot.http.client.HttpRedirects;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.boot.test.web.client.TestRestTemplate;
|
||||
import org.springframework.boot.test.web.server.LocalServerPort;
|
||||
@@ -43,7 +43,7 @@ class SampleOAuth2ClientApplicationTests {
|
||||
|
||||
@Test
|
||||
void everythingShouldRedirectToLogin() {
|
||||
ResponseEntity<String> entity = this.restTemplate.withRedirects(Redirects.DONT_FOLLOW)
|
||||
ResponseEntity<String> entity = this.restTemplate.withRedirects(HttpRedirects.DONT_FOLLOW)
|
||||
.getForEntity("/", String.class);
|
||||
assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.FOUND);
|
||||
assertThat(entity.getHeaders().getLocation()).isEqualTo(URI.create("http://localhost:" + this.port + "/login"));
|
||||
|
||||
@@ -21,7 +21,7 @@ import java.net.URI;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings.Redirects;
|
||||
import org.springframework.boot.http.client.HttpRedirects;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.boot.test.web.client.TestRestTemplate;
|
||||
import org.springframework.boot.test.web.server.LocalServerPort;
|
||||
@@ -41,7 +41,7 @@ class SampleSaml2RelyingPartyApplicationTests {
|
||||
|
||||
@Test
|
||||
void everythingShouldRedirectToLogin() {
|
||||
ResponseEntity<String> entity = this.restTemplate.withRedirects(Redirects.DONT_FOLLOW)
|
||||
ResponseEntity<String> entity = this.restTemplate.withRedirects(HttpRedirects.DONT_FOLLOW)
|
||||
.getForEntity("/", String.class);
|
||||
assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.FOUND);
|
||||
assertThat(entity.getHeaders().getLocation()).isEqualTo(URI.create("http://localhost:" + this.port + "/login"));
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2024 the original author or authors.
|
||||
* Copyright 2012-2025 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.
|
||||
@@ -26,7 +26,7 @@ import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings.Redirects;
|
||||
import org.springframework.boot.http.client.HttpRedirects;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.boot.test.web.client.TestRestTemplate;
|
||||
import org.springframework.boot.test.web.server.LocalServerPort;
|
||||
@@ -58,7 +58,7 @@ class SampleSessionJdbcApplicationTests {
|
||||
|
||||
private static final ClientHttpRequestFactorySettings DONT_FOLLOW_REDIRECTS = ClientHttpRequestFactorySettings
|
||||
.defaults()
|
||||
.withRedirects(Redirects.DONT_FOLLOW);
|
||||
.withRedirects(HttpRedirects.DONT_FOLLOW);
|
||||
|
||||
@Autowired
|
||||
private RestTemplateBuilder restTemplateBuilder;
|
||||
|
||||
@@ -21,7 +21,7 @@ import java.util.Collections;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings.Redirects;
|
||||
import org.springframework.boot.http.client.HttpRedirects;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
|
||||
import org.springframework.boot.test.web.client.TestRestTemplate;
|
||||
@@ -56,7 +56,7 @@ class SampleWebSecureCustomApplicationTests {
|
||||
void testHome() {
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setAccept(Collections.singletonList(MediaType.TEXT_HTML));
|
||||
ResponseEntity<String> entity = this.restTemplate.withRedirects(Redirects.DONT_FOLLOW)
|
||||
ResponseEntity<String> entity = this.restTemplate.withRedirects(HttpRedirects.DONT_FOLLOW)
|
||||
.exchange("/", HttpMethod.GET, new HttpEntity<>(headers), String.class);
|
||||
assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.FOUND);
|
||||
assertThat(entity.getHeaders().getLocation().toString()).endsWith(this.port + "/login");
|
||||
@@ -80,7 +80,7 @@ class SampleWebSecureCustomApplicationTests {
|
||||
MultiValueMap<String, String> form = new LinkedMultiValueMap<>();
|
||||
form.set("username", "user");
|
||||
form.set("password", "password");
|
||||
ResponseEntity<String> entity = this.restTemplate.withRedirects(Redirects.DONT_FOLLOW)
|
||||
ResponseEntity<String> entity = this.restTemplate.withRedirects(HttpRedirects.DONT_FOLLOW)
|
||||
.exchange("/login", HttpMethod.POST, new HttpEntity<>(form, headers), String.class);
|
||||
assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.FOUND);
|
||||
assertThat(entity.getHeaders().getLocation().toString()).endsWith(this.port + "/");
|
||||
|
||||
@@ -21,7 +21,7 @@ import java.util.Collections;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings.Redirects;
|
||||
import org.springframework.boot.http.client.HttpRedirects;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
|
||||
import org.springframework.boot.test.web.client.TestRestTemplate;
|
||||
@@ -56,7 +56,7 @@ class SampleWebSecureJdbcApplicationTests {
|
||||
void testHome() {
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setAccept(Collections.singletonList(MediaType.TEXT_HTML));
|
||||
ResponseEntity<String> entity = this.restTemplate.withRedirects(Redirects.DONT_FOLLOW)
|
||||
ResponseEntity<String> entity = this.restTemplate.withRedirects(HttpRedirects.DONT_FOLLOW)
|
||||
.exchange("/", HttpMethod.GET, new HttpEntity<>(headers), String.class);
|
||||
assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.FOUND);
|
||||
assertThat(entity.getHeaders().getLocation().toString()).endsWith(this.port + "/login");
|
||||
@@ -80,7 +80,7 @@ class SampleWebSecureJdbcApplicationTests {
|
||||
MultiValueMap<String, String> form = new LinkedMultiValueMap<>();
|
||||
form.set("username", "user");
|
||||
form.set("password", "user");
|
||||
ResponseEntity<String> entity = this.restTemplate.withRedirects(Redirects.DONT_FOLLOW)
|
||||
ResponseEntity<String> entity = this.restTemplate.withRedirects(HttpRedirects.DONT_FOLLOW)
|
||||
.exchange("/login", HttpMethod.POST, new HttpEntity<>(form, headers), String.class);
|
||||
assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.FOUND);
|
||||
assertThat(entity.getHeaders().getLocation().toString()).endsWith(this.port + "/");
|
||||
|
||||
@@ -22,7 +22,7 @@ import jakarta.servlet.DispatcherType;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings.Redirects;
|
||||
import org.springframework.boot.http.client.HttpRedirects;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
|
||||
import org.springframework.boot.test.web.client.TestRestTemplate;
|
||||
@@ -63,7 +63,7 @@ class SampleWebSecureApplicationTests {
|
||||
void testHome() {
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setAccept(Collections.singletonList(MediaType.TEXT_HTML));
|
||||
ResponseEntity<String> entity = this.restTemplate.withRedirects(Redirects.DONT_FOLLOW)
|
||||
ResponseEntity<String> entity = this.restTemplate.withRedirects(HttpRedirects.DONT_FOLLOW)
|
||||
.exchange("/home", HttpMethod.GET, new HttpEntity<>(headers), String.class);
|
||||
assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.FOUND);
|
||||
assertThat(entity.getHeaders().getLocation().toString()).endsWith(this.port + "/login");
|
||||
@@ -87,7 +87,7 @@ class SampleWebSecureApplicationTests {
|
||||
MultiValueMap<String, String> form = new LinkedMultiValueMap<>();
|
||||
form.set("username", "user");
|
||||
form.set("password", "password");
|
||||
ResponseEntity<String> entity = this.restTemplate.withRedirects(Redirects.DONT_FOLLOW)
|
||||
ResponseEntity<String> entity = this.restTemplate.withRedirects(HttpRedirects.DONT_FOLLOW)
|
||||
.exchange("/login", HttpMethod.POST, new HttpEntity<>(form, headers), String.class);
|
||||
assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.FOUND);
|
||||
assertThat(entity.getHeaders().getLocation().toString()).endsWith(this.port + "/");
|
||||
|
||||
Reference in New Issue
Block a user