MockHttpServletRequest exposes "HTTP/1.1" as default protocol
Issue: SPR-15232
This commit is contained in:
parent
65d8d698cd
commit
ed85337901
|
|
@ -87,10 +87,46 @@ public class MockHttpServletRequest implements HttpServletRequest {
|
|||
|
||||
private static final String HTTPS = "https";
|
||||
|
||||
private static final String CONTENT_TYPE_HEADER = "Content-Type";
|
||||
|
||||
private static final String HOST_HEADER = "Host";
|
||||
|
||||
private static final String CHARSET_PREFIX = "charset=";
|
||||
|
||||
private static final TimeZone GMT = TimeZone.getTimeZone("GMT");
|
||||
|
||||
private static final ServletInputStream EMPTY_SERVLET_INPUT_STREAM =
|
||||
new DelegatingServletInputStream(StreamUtils.emptyInput());
|
||||
|
||||
private static final BufferedReader EMPTY_BUFFERED_READER =
|
||||
new BufferedReader(new StringReader(""));
|
||||
|
||||
/**
|
||||
* The default protocol: 'http'.
|
||||
* Date formats as specified in the HTTP RFC
|
||||
* @see <a href="https://tools.ietf.org/html/rfc7231#section-7.1.1.1">Section 7.1.1.1 of RFC 7231</a>
|
||||
*/
|
||||
public static final String DEFAULT_PROTOCOL = HTTP;
|
||||
private static final String[] DATE_FORMATS = new String[] {
|
||||
"EEE, dd MMM yyyy HH:mm:ss zzz",
|
||||
"EEE, dd-MMM-yy HH:mm:ss zzz",
|
||||
"EEE MMM dd HH:mm:ss yyyy"
|
||||
};
|
||||
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Public constants
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* The default protocol: 'HTTP/1.1'.
|
||||
* @since 4.3.7
|
||||
*/
|
||||
public static final String DEFAULT_PROTOCOL = "HTTP/1.1";
|
||||
|
||||
/**
|
||||
* The default scheme: 'http'.
|
||||
* @since 4.3.7
|
||||
*/
|
||||
public static final String DEFAULT_SCHEME = HTTP;
|
||||
|
||||
/**
|
||||
* The default server address: '127.0.0.1'.
|
||||
|
|
@ -117,30 +153,12 @@ public class MockHttpServletRequest implements HttpServletRequest {
|
|||
*/
|
||||
public static final String DEFAULT_REMOTE_HOST = "localhost";
|
||||
|
||||
private static final String CONTENT_TYPE_HEADER = "Content-Type";
|
||||
|
||||
private static final String HOST_HEADER = "Host";
|
||||
|
||||
private static final String CHARSET_PREFIX = "charset=";
|
||||
|
||||
private static final ServletInputStream EMPTY_SERVLET_INPUT_STREAM =
|
||||
new DelegatingServletInputStream(StreamUtils.emptyInput());
|
||||
|
||||
private static final BufferedReader EMPTY_BUFFERED_READER =
|
||||
new BufferedReader(new StringReader(""));
|
||||
|
||||
/**
|
||||
* Date formats as specified in the HTTP RFC
|
||||
* @see <a href="https://tools.ietf.org/html/rfc7231#section-7.1.1.1">Section 7.1.1.1 of RFC 7231</a>
|
||||
*/
|
||||
private static final String[] DATE_FORMATS = new String[] {
|
||||
"EEE, dd MMM yyyy HH:mm:ss zzz",
|
||||
"EEE, dd-MMM-yy HH:mm:ss zzz",
|
||||
"EEE MMM dd HH:mm:ss yyyy"
|
||||
};
|
||||
|
||||
private static final TimeZone GMT = TimeZone.getTimeZone("GMT");
|
||||
// ---------------------------------------------------------------------
|
||||
// Lifecycle properties
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
private final ServletContext servletContext;
|
||||
|
||||
private boolean active = true;
|
||||
|
||||
|
|
@ -161,7 +179,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
|
|||
|
||||
private String protocol = DEFAULT_PROTOCOL;
|
||||
|
||||
private String scheme = DEFAULT_PROTOCOL;
|
||||
private String scheme = DEFAULT_SCHEME;
|
||||
|
||||
private String serverName = DEFAULT_SERVER_NAME;
|
||||
|
||||
|
|
@ -176,8 +194,6 @@ public class MockHttpServletRequest implements HttpServletRequest {
|
|||
|
||||
private boolean secure = false;
|
||||
|
||||
private final ServletContext servletContext;
|
||||
|
||||
private int remotePort = DEFAULT_SERVER_PORT;
|
||||
|
||||
private String localName = DEFAULT_SERVER_NAME;
|
||||
|
|
@ -1128,16 +1144,13 @@ public class MockHttpServletRequest implements HttpServletRequest {
|
|||
@Override
|
||||
public StringBuffer getRequestURL() {
|
||||
StringBuffer url = new StringBuffer(this.scheme).append("://").append(this.serverName);
|
||||
|
||||
if (this.serverPort > 0
|
||||
&& ((HTTP.equalsIgnoreCase(this.scheme) && this.serverPort != 80) || (HTTPS.equalsIgnoreCase(this.scheme) && this.serverPort != 443))) {
|
||||
if (this.serverPort > 0 && ((HTTP.equalsIgnoreCase(this.scheme) && this.serverPort != 80) ||
|
||||
(HTTPS.equalsIgnoreCase(this.scheme) && this.serverPort != 443))) {
|
||||
url.append(':').append(this.serverPort);
|
||||
}
|
||||
|
||||
if (StringUtils.hasText(getRequestURI())) {
|
||||
url.append(getRequestURI());
|
||||
}
|
||||
|
||||
return url;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2002-2016 the original author or authors.
|
||||
* Copyright 2002-2017 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 java.util.HashMap;
|
|||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.Cookie;
|
||||
|
||||
import org.junit.Rule;
|
||||
|
|
@ -62,6 +61,16 @@ public class MockHttpServletRequestTests {
|
|||
public final ExpectedException exception = ExpectedException.none();
|
||||
|
||||
|
||||
@Test
|
||||
public void protocolAndScheme() {
|
||||
assertEquals(MockHttpServletRequest.DEFAULT_PROTOCOL, request.getProtocol());
|
||||
assertEquals(MockHttpServletRequest.DEFAULT_SCHEME, request.getScheme());
|
||||
request.setProtocol("HTTP/2.0");
|
||||
request.setScheme("https");
|
||||
assertEquals("HTTP/2.0", request.getProtocol());
|
||||
assertEquals("https", request.getScheme());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setContentAndGetInputStream() throws IOException {
|
||||
byte[] bytes = "body".getBytes(Charset.defaultCharset());
|
||||
|
|
|
|||
|
|
@ -87,10 +87,46 @@ public class MockHttpServletRequest implements HttpServletRequest {
|
|||
|
||||
private static final String HTTPS = "https";
|
||||
|
||||
private static final String CONTENT_TYPE_HEADER = "Content-Type";
|
||||
|
||||
private static final String HOST_HEADER = "Host";
|
||||
|
||||
private static final String CHARSET_PREFIX = "charset=";
|
||||
|
||||
private static final TimeZone GMT = TimeZone.getTimeZone("GMT");
|
||||
|
||||
private static final ServletInputStream EMPTY_SERVLET_INPUT_STREAM =
|
||||
new DelegatingServletInputStream(StreamUtils.emptyInput());
|
||||
|
||||
private static final BufferedReader EMPTY_BUFFERED_READER =
|
||||
new BufferedReader(new StringReader(""));
|
||||
|
||||
/**
|
||||
* The default protocol: 'http'.
|
||||
* Date formats as specified in the HTTP RFC
|
||||
* @see <a href="https://tools.ietf.org/html/rfc7231#section-7.1.1.1">Section 7.1.1.1 of RFC 7231</a>
|
||||
*/
|
||||
public static final String DEFAULT_PROTOCOL = HTTP;
|
||||
private static final String[] DATE_FORMATS = new String[] {
|
||||
"EEE, dd MMM yyyy HH:mm:ss zzz",
|
||||
"EEE, dd-MMM-yy HH:mm:ss zzz",
|
||||
"EEE MMM dd HH:mm:ss yyyy"
|
||||
};
|
||||
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Public constants
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* The default protocol: 'HTTP/1.1'.
|
||||
* @since 4.3.7
|
||||
*/
|
||||
public static final String DEFAULT_PROTOCOL = "HTTP/1.1";
|
||||
|
||||
/**
|
||||
* The default scheme: 'http'.
|
||||
* @since 4.3.7
|
||||
*/
|
||||
public static final String DEFAULT_SCHEME = HTTP;
|
||||
|
||||
/**
|
||||
* The default server address: '127.0.0.1'.
|
||||
|
|
@ -117,30 +153,12 @@ public class MockHttpServletRequest implements HttpServletRequest {
|
|||
*/
|
||||
public static final String DEFAULT_REMOTE_HOST = "localhost";
|
||||
|
||||
private static final String CONTENT_TYPE_HEADER = "Content-Type";
|
||||
|
||||
private static final String HOST_HEADER = "Host";
|
||||
|
||||
private static final String CHARSET_PREFIX = "charset=";
|
||||
|
||||
private static final ServletInputStream EMPTY_SERVLET_INPUT_STREAM =
|
||||
new DelegatingServletInputStream(StreamUtils.emptyInput());
|
||||
|
||||
private static final BufferedReader EMPTY_BUFFERED_READER =
|
||||
new BufferedReader(new StringReader(""));
|
||||
|
||||
/**
|
||||
* Date formats as specified in the HTTP RFC
|
||||
* @see <a href="https://tools.ietf.org/html/rfc7231#section-7.1.1.1">Section 7.1.1.1 of RFC 7231</a>
|
||||
*/
|
||||
private static final String[] DATE_FORMATS = new String[] {
|
||||
"EEE, dd MMM yyyy HH:mm:ss zzz",
|
||||
"EEE, dd-MMM-yy HH:mm:ss zzz",
|
||||
"EEE MMM dd HH:mm:ss yyyy"
|
||||
};
|
||||
|
||||
private static final TimeZone GMT = TimeZone.getTimeZone("GMT");
|
||||
// ---------------------------------------------------------------------
|
||||
// Lifecycle properties
|
||||
// ---------------------------------------------------------------------
|
||||
|
||||
private final ServletContext servletContext;
|
||||
|
||||
private boolean active = true;
|
||||
|
||||
|
|
@ -161,7 +179,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
|
|||
|
||||
private String protocol = DEFAULT_PROTOCOL;
|
||||
|
||||
private String scheme = DEFAULT_PROTOCOL;
|
||||
private String scheme = DEFAULT_SCHEME;
|
||||
|
||||
private String serverName = DEFAULT_SERVER_NAME;
|
||||
|
||||
|
|
@ -176,8 +194,6 @@ public class MockHttpServletRequest implements HttpServletRequest {
|
|||
|
||||
private boolean secure = false;
|
||||
|
||||
private final ServletContext servletContext;
|
||||
|
||||
private int remotePort = DEFAULT_SERVER_PORT;
|
||||
|
||||
private String localName = DEFAULT_SERVER_NAME;
|
||||
|
|
@ -1128,16 +1144,13 @@ public class MockHttpServletRequest implements HttpServletRequest {
|
|||
@Override
|
||||
public StringBuffer getRequestURL() {
|
||||
StringBuffer url = new StringBuffer(this.scheme).append("://").append(this.serverName);
|
||||
|
||||
if (this.serverPort > 0
|
||||
&& ((HTTP.equalsIgnoreCase(this.scheme) && this.serverPort != 80) || (HTTPS.equalsIgnoreCase(this.scheme) && this.serverPort != 443))) {
|
||||
if (this.serverPort > 0 && ((HTTP.equalsIgnoreCase(this.scheme) && this.serverPort != 80) ||
|
||||
(HTTPS.equalsIgnoreCase(this.scheme) && this.serverPort != 443))) {
|
||||
url.append(':').append(this.serverPort);
|
||||
}
|
||||
|
||||
if (StringUtils.hasText(getRequestURI())) {
|
||||
url.append(getRequestURI());
|
||||
}
|
||||
|
||||
return url;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue