Consistent HttpMethod identity comparisons
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2017 the original author or authors.
|
||||
* Copyright 2002-2018 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.
|
||||
@@ -81,7 +81,7 @@ final class SimpleBufferingAsyncClientHttpRequest extends AbstractBufferingAsync
|
||||
public ClientHttpResponse call() throws Exception {
|
||||
SimpleBufferingClientHttpRequest.addHeaders(connection, headers);
|
||||
// JDK <1.8 doesn't support getOutputStream with HTTP DELETE
|
||||
if (HttpMethod.DELETE == getMethod() && bufferedOutput.length == 0) {
|
||||
if (getMethod() == HttpMethod.DELETE && bufferedOutput.length == 0) {
|
||||
connection.setDoOutput(false);
|
||||
}
|
||||
if (connection.getDoOutput() && outputStreaming) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2017 the original author or authors.
|
||||
* Copyright 2002-2018 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.
|
||||
@@ -69,7 +69,7 @@ final class SimpleBufferingClientHttpRequest extends AbstractBufferingClientHttp
|
||||
protected ClientHttpResponse executeInternal(HttpHeaders headers, byte[] bufferedOutput) throws IOException {
|
||||
addHeaders(this.connection, headers);
|
||||
// JDK <1.8 doesn't support getOutputStream with HTTP DELETE
|
||||
if (HttpMethod.DELETE == getMethod() && bufferedOutput.length == 0) {
|
||||
if (getMethod() == HttpMethod.DELETE && bufferedOutput.length == 0) {
|
||||
this.connection.setDoOutput(false);
|
||||
}
|
||||
if (this.connection.getDoOutput() && this.outputStreaming) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2016 the original author or authors.
|
||||
* Copyright 2002-2018 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,12 +20,12 @@ import java.net.URISyntaxException;
|
||||
import java.util.function.BiFunction;
|
||||
|
||||
import io.netty.handler.codec.http.HttpResponseStatus;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import reactor.core.publisher.Mono;
|
||||
import reactor.ipc.netty.http.server.HttpServerRequest;
|
||||
import reactor.ipc.netty.http.server.HttpServerResponse;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.springframework.core.io.buffer.NettyDataBufferFactory;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.util.Assert;
|
||||
@@ -67,7 +67,7 @@ public class ReactorHttpHandlerAdapter
|
||||
return Mono.empty();
|
||||
}
|
||||
|
||||
if (HttpMethod.HEAD.equals(adaptedRequest.getMethod())) {
|
||||
if (adaptedRequest.getMethod() == HttpMethod.HEAD) {
|
||||
adaptedResponse = new HttpHeadResponseDecorator(adaptedResponse);
|
||||
}
|
||||
|
||||
|
||||
@@ -168,7 +168,7 @@ public class ServletHttpHandlerAdapter implements Servlet {
|
||||
ServerHttpRequest httpRequest = createRequest(((HttpServletRequest) request), asyncContext);
|
||||
ServerHttpResponse httpResponse = createResponse(((HttpServletResponse) response), asyncContext);
|
||||
|
||||
if (HttpMethod.HEAD.equals(httpRequest.getMethod())) {
|
||||
if (httpRequest.getMethod() == HttpMethod.HEAD) {
|
||||
httpResponse = new HttpHeadResponseDecorator(httpResponse);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2016 the original author or authors.
|
||||
* Copyright 2002-2018 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.
|
||||
@@ -19,7 +19,6 @@ package org.springframework.http.server.reactive;
|
||||
import java.io.IOException;
|
||||
|
||||
import io.undertow.server.HttpServerExchange;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.reactivestreams.Subscriber;
|
||||
@@ -66,11 +65,10 @@ public class UndertowHttpHandlerAdapter implements io.undertow.server.HttpHandle
|
||||
|
||||
@Override
|
||||
public void handleRequest(HttpServerExchange exchange) throws Exception {
|
||||
|
||||
ServerHttpRequest request = new UndertowServerHttpRequest(exchange, getDataBufferFactory());
|
||||
ServerHttpResponse response = new UndertowServerHttpResponse(exchange, getDataBufferFactory());
|
||||
|
||||
if (HttpMethod.HEAD.equals(request.getMethod())) {
|
||||
if (request.getMethod() == HttpMethod.HEAD) {
|
||||
response = new HttpHeadResponseDecorator(response);
|
||||
}
|
||||
|
||||
@@ -83,7 +81,6 @@ public class UndertowHttpHandlerAdapter implements io.undertow.server.HttpHandle
|
||||
|
||||
private final HttpServerExchange exchange;
|
||||
|
||||
|
||||
public HandlerResultSubscriber(HttpServerExchange exchange) {
|
||||
this.exchange = exchange;
|
||||
}
|
||||
@@ -95,7 +92,7 @@ public class UndertowHttpHandlerAdapter implements io.undertow.server.HttpHandle
|
||||
|
||||
@Override
|
||||
public void onNext(Void aVoid) {
|
||||
// no op
|
||||
// no-op
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -106,8 +103,8 @@ public class UndertowHttpHandlerAdapter implements io.undertow.server.HttpHandle
|
||||
logger.debug("Closing connection");
|
||||
this.exchange.getConnection().close();
|
||||
}
|
||||
catch (IOException e) {
|
||||
// Ignore
|
||||
catch (IOException ex2) {
|
||||
// ignore
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -123,4 +120,5 @@ public class UndertowHttpHandlerAdapter implements io.undertow.server.HttpHandle
|
||||
this.exchange.endExchange();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ public abstract class CorsUtils {
|
||||
* Returns {@code true} if the request is a valid CORS pre-flight one.
|
||||
*/
|
||||
public static boolean isPreFlightRequest(ServerHttpRequest request) {
|
||||
return (isCorsRequest(request) && HttpMethod.OPTIONS == request.getMethod() &&
|
||||
return (request.getMethod() == HttpMethod.OPTIONS && isCorsRequest(request) &&
|
||||
request.getHeaders().get(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD) != null);
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ public abstract class CorsUtils {
|
||||
* {@code Forwarded}, {@code X-Forwarded-Proto}, {@code X-Forwarded-Host} and
|
||||
* @code X-Forwarded-Port} headers.
|
||||
* @return {@code true} if the request is a same-origin one, {@code false} in case
|
||||
* of cross-origin request.
|
||||
* of a cross-origin request
|
||||
*/
|
||||
public static boolean isSameOrigin(ServerHttpRequest request) {
|
||||
String origin = request.getHeaders().getOrigin();
|
||||
@@ -67,7 +67,8 @@ public abstract class CorsUtils {
|
||||
Assert.notNull(actualHost, "Actual request host must not be null");
|
||||
Assert.isTrue(actualPort != -1, "Actual request port must not be undefined");
|
||||
UriComponents originUrl = UriComponentsBuilder.fromOriginHeader(origin).build();
|
||||
return (actualHost.equals(originUrl.getHost()) && actualPort == getPort(originUrl.getScheme(), originUrl.getPort()));
|
||||
return (actualHost.equals(originUrl.getHost()) &&
|
||||
actualPort == getPort(originUrl.getScheme(), originUrl.getPort()));
|
||||
}
|
||||
|
||||
private static int getPort(@Nullable String scheme, int port) {
|
||||
|
||||
Reference in New Issue
Block a user