Browse Source

Consistently check available local/remote addresses for non-null

pull/25758/head
Juergen Hoeller 6 years ago
parent
commit
f3d4df2fd4
  1. 20
      spring-test/src/main/java/org/springframework/mock/http/server/reactive/MockServerHttpRequest.java
  2. 14
      spring-web/src/main/java/org/springframework/http/server/reactive/DefaultServerHttpRequestBuilder.java
  3. 11
      spring-web/src/main/java/org/springframework/http/server/reactive/ReactorServerHttpRequest.java
  4. 12
      spring-web/src/main/java/org/springframework/http/server/reactive/ServerHttpRequest.java
  5. 14
      spring-web/src/main/java/org/springframework/http/server/reactive/ServerHttpRequestDecorator.java
  6. 13
      spring-web/src/main/java/org/springframework/http/server/reactive/ServletServerHttpRequest.java
  7. 12
      spring-web/src/main/java/org/springframework/http/server/reactive/UndertowServerHttpRequest.java
  8. 20
      spring-web/src/testFixtures/java/org/springframework/web/testfixture/http/server/reactive/MockServerHttpRequest.java

20
spring-test/src/main/java/org/springframework/mock/http/server/reactive/MockServerHttpRequest.java

@ -24,6 +24,7 @@ import java.util.Arrays; @@ -24,6 +24,7 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Locale;
import java.util.Objects;
import java.util.Optional;
import org.reactivestreams.Publisher;
@ -64,10 +65,10 @@ public final class MockServerHttpRequest extends AbstractServerHttpRequest { @@ -64,10 +65,10 @@ public final class MockServerHttpRequest extends AbstractServerHttpRequest {
private final MultiValueMap<String, HttpCookie> cookies;
@Nullable
private final InetSocketAddress remoteAddress;
private final InetSocketAddress localAddress;
@Nullable
private final InetSocketAddress localAddress;
private final InetSocketAddress remoteAddress;
@Nullable
private final SslInfo sslInfo;
@ -98,25 +99,24 @@ public final class MockServerHttpRequest extends AbstractServerHttpRequest { @@ -98,25 +99,24 @@ public final class MockServerHttpRequest extends AbstractServerHttpRequest {
}
@Override
@SuppressWarnings("ConstantConditions")
public String getMethodValue() {
return (this.httpMethod != null ? this.httpMethod.name() : this.customHttpMethod);
return (this.httpMethod != null ? this.httpMethod.name() : Objects.requireNonNull(this.customHttpMethod));
}
@Override
@Nullable
public InetSocketAddress getRemoteAddress() {
return this.remoteAddress;
}
@Nullable
@Override
public InetSocketAddress getLocalAddress() {
return this.localAddress;
}
@Override
@Nullable
public InetSocketAddress getRemoteAddress() {
return this.remoteAddress;
}
@Override
@Nullable
protected SslInfo initSslInfo() {
return this.sslInfo;
}

14
spring-web/src/main/java/org/springframework/http/server/reactive/DefaultServerHttpRequestBuilder.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2019 the original author or authors.
* Copyright 2002-2020 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.
@ -211,20 +211,20 @@ class DefaultServerHttpRequestBuilder implements ServerHttpRequest.Builder { @@ -211,20 +211,20 @@ class DefaultServerHttpRequestBuilder implements ServerHttpRequest.Builder {
return this.cookies;
}
@Nullable
@Override
public InetSocketAddress getRemoteAddress() {
return this.originalRequest.getRemoteAddress();
}
@Nullable
@Override
public InetSocketAddress getLocalAddress() {
return this.originalRequest.getLocalAddress();
}
@Override
@Nullable
public InetSocketAddress getRemoteAddress() {
return this.originalRequest.getRemoteAddress();
}
@Override
@Nullable
protected SslInfo initSslInfo() {
return this.sslInfo;
}

11
spring-web/src/main/java/org/springframework/http/server/reactive/ReactorServerHttpRequest.java

@ -96,6 +96,7 @@ class ReactorServerHttpRequest extends AbstractServerHttpRequest { @@ -96,6 +96,7 @@ class ReactorServerHttpRequest extends AbstractServerHttpRequest {
}
else {
InetSocketAddress localAddress = request.hostAddress();
Assert.state(localAddress != null, "No host address available");
return new URI(scheme, null, localAddress.getHostString(),
localAddress.getPort(), null, null, null);
}
@ -151,13 +152,15 @@ class ReactorServerHttpRequest extends AbstractServerHttpRequest { @@ -151,13 +152,15 @@ class ReactorServerHttpRequest extends AbstractServerHttpRequest {
}
@Override
public InetSocketAddress getRemoteAddress() {
return this.request.remoteAddress();
@Nullable
public InetSocketAddress getLocalAddress() {
return this.request.hostAddress();
}
@Override
public InetSocketAddress getLocalAddress() {
return this.request.hostAddress();
@Nullable
public InetSocketAddress getRemoteAddress() {
return this.request.remoteAddress();
}
@Override

12
spring-web/src/main/java/org/springframework/http/server/reactive/ServerHttpRequest.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2019 the original author or authors.
* Copyright 2002-2020 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.
@ -65,19 +65,19 @@ public interface ServerHttpRequest extends HttpRequest, ReactiveHttpInputMessage @@ -65,19 +65,19 @@ public interface ServerHttpRequest extends HttpRequest, ReactiveHttpInputMessage
MultiValueMap<String, HttpCookie> getCookies();
/**
* Return the remote address where this request is connected to, if available.
* Return the local address the request was accepted on, if available.
* @since 5.2.3
*/
@Nullable
default InetSocketAddress getRemoteAddress() {
default InetSocketAddress getLocalAddress() {
return null;
}
/**
* Return the local address the request was accepted on, if available.
* 5.2.3
* Return the remote address where this request is connected to, if available.
*/
@Nullable
default InetSocketAddress getLocalAddress() {
default InetSocketAddress getRemoteAddress() {
return null;
}

14
spring-web/src/main/java/org/springframework/http/server/reactive/ServerHttpRequestDecorator.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2019 the original author or authors.
* Copyright 2002-2020 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.
@ -97,17 +97,19 @@ public class ServerHttpRequestDecorator implements ServerHttpRequest { @@ -97,17 +97,19 @@ public class ServerHttpRequestDecorator implements ServerHttpRequest {
}
@Override
public InetSocketAddress getRemoteAddress() {
return getDelegate().getRemoteAddress();
}
@Override
@Nullable
public InetSocketAddress getLocalAddress() {
return getDelegate().getLocalAddress();
}
@Override
@Nullable
public InetSocketAddress getRemoteAddress() {
return getDelegate().getRemoteAddress();
}
@Override
@Nullable
public SslInfo getSslInfo() {
return getDelegate().getSslInfo();
}

13
spring-web/src/main/java/org/springframework/http/server/reactive/ServletServerHttpRequest.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2019 the original author or authors.
* Copyright 2002-2020 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.
@ -42,6 +42,7 @@ import org.springframework.core.io.buffer.DefaultDataBufferFactory; @@ -42,6 +42,7 @@ import org.springframework.core.io.buffer.DefaultDataBufferFactory;
import org.springframework.http.HttpCookie;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.lang.NonNull;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
import org.springframework.util.LinkedCaseInsensitiveMap;
@ -174,13 +175,15 @@ class ServletServerHttpRequest extends AbstractServerHttpRequest { @@ -174,13 +175,15 @@ class ServletServerHttpRequest extends AbstractServerHttpRequest {
}
@Override
public InetSocketAddress getRemoteAddress() {
return new InetSocketAddress(this.request.getRemoteHost(), this.request.getRemotePort());
@NonNull
public InetSocketAddress getLocalAddress() {
return new InetSocketAddress(this.request.getLocalAddr(), this.request.getLocalPort());
}
@Override
public InetSocketAddress getLocalAddress() {
return new InetSocketAddress(this.request.getLocalAddr(), this.request.getLocalPort());
@NonNull
public InetSocketAddress getRemoteAddress() {
return new InetSocketAddress(this.request.getRemoteHost(), this.request.getRemotePort());
}
@Override

12
spring-web/src/main/java/org/springframework/http/server/reactive/UndertowServerHttpRequest.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2019 the original author or authors.
* Copyright 2002-2020 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.
@ -98,13 +98,15 @@ class UndertowServerHttpRequest extends AbstractServerHttpRequest { @@ -98,13 +98,15 @@ class UndertowServerHttpRequest extends AbstractServerHttpRequest {
}
@Override
public InetSocketAddress getRemoteAddress() {
return this.exchange.getSourceAddress();
@Nullable
public InetSocketAddress getLocalAddress() {
return this.exchange.getDestinationAddress();
}
@Override
public InetSocketAddress getLocalAddress() {
return this.exchange.getDestinationAddress();
@Nullable
public InetSocketAddress getRemoteAddress() {
return this.exchange.getSourceAddress();
}
@Nullable

20
spring-web/src/testFixtures/java/org/springframework/web/testfixture/http/server/reactive/MockServerHttpRequest.java

@ -24,6 +24,7 @@ import java.util.Arrays; @@ -24,6 +24,7 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Locale;
import java.util.Objects;
import java.util.Optional;
import org.reactivestreams.Publisher;
@ -64,10 +65,10 @@ public final class MockServerHttpRequest extends AbstractServerHttpRequest { @@ -64,10 +65,10 @@ public final class MockServerHttpRequest extends AbstractServerHttpRequest {
private final MultiValueMap<String, HttpCookie> cookies;
@Nullable
private final InetSocketAddress remoteAddress;
private final InetSocketAddress localAddress;
@Nullable
private final InetSocketAddress localAddress;
private final InetSocketAddress remoteAddress;
@Nullable
private final SslInfo sslInfo;
@ -98,25 +99,24 @@ public final class MockServerHttpRequest extends AbstractServerHttpRequest { @@ -98,25 +99,24 @@ public final class MockServerHttpRequest extends AbstractServerHttpRequest {
}
@Override
@SuppressWarnings("ConstantConditions")
public String getMethodValue() {
return (this.httpMethod != null ? this.httpMethod.name() : this.customHttpMethod);
return (this.httpMethod != null ? this.httpMethod.name() : Objects.requireNonNull(this.customHttpMethod));
}
@Override
@Nullable
public InetSocketAddress getRemoteAddress() {
return this.remoteAddress;
}
@Nullable
@Override
public InetSocketAddress getLocalAddress() {
return this.localAddress;
}
@Override
@Nullable
public InetSocketAddress getRemoteAddress() {
return this.remoteAddress;
}
@Override
@Nullable
protected SslInfo initSslInfo() {
return this.sslInfo;
}

Loading…
Cancel
Save