Issue #1503 Optionally strip IPv6. Default true
This commit is contained in:
parent
e55f528643
commit
ad76aa6c65
|
@ -63,7 +63,7 @@ import javax.servlet.http.HttpUpgradeHandler;
|
|||
import javax.servlet.http.MappingMatch;
|
||||
import javax.servlet.http.Part;
|
||||
import javax.servlet.http.PushBuilder;
|
||||
import javax.servlet.http.ServletMapping;
|
||||
import javax.servlet.http.HttpServletMapping;
|
||||
|
||||
import org.eclipse.jetty.http.BadMessageException;
|
||||
import org.eclipse.jetty.http.HostPortHttpField;
|
||||
|
@ -2454,7 +2454,7 @@ public class Request implements HttpServletRequest
|
|||
|
||||
|
||||
// TODO replace with overriden version from API
|
||||
public ServletMapping getMapping()
|
||||
public HttpServletMapping getMapping()
|
||||
{
|
||||
final PathSpec pathSpec = _pathSpec;
|
||||
final MappingMatch match;
|
||||
|
@ -2496,7 +2496,7 @@ public class Request implements HttpServletRequest
|
|||
mapping = _servletPath;
|
||||
}
|
||||
|
||||
return new ServletMapping()
|
||||
return new HttpServletMapping()
|
||||
{
|
||||
@Override
|
||||
public String getMatchValue()
|
||||
|
|
|
@ -109,7 +109,7 @@ public class Response implements HttpServletResponse
|
|||
private OutputType _outputType = OutputType.NONE;
|
||||
private ResponseWriter _writer;
|
||||
private long _contentLength = -1;
|
||||
private Supplier<HttpFields> trailers;
|
||||
private Supplier<HttpFields> _trailers;
|
||||
|
||||
private enum EncodingFrom { NOT_SET, INFERRED, SET_LOCALE, SET_CONTENT_TYPE, SET_CHARACTER_ENCODING }
|
||||
private static final EnumSet<EncodingFrom> __localeOverride = EnumSet.of(EncodingFrom.NOT_SET,EncodingFrom.INFERRED);
|
||||
|
@ -1316,34 +1316,27 @@ public class Response implements HttpServletResponse
|
|||
@Deprecated
|
||||
public void setTrailerHttpFields(Supplier<HttpFields> trailers)
|
||||
{
|
||||
this.trailers = trailers;
|
||||
this._trailers = trailers;
|
||||
}
|
||||
|
||||
// TODO: @Override
|
||||
@Override
|
||||
public void setTrailerFields(Supplier<Map<String,String>> trailers)
|
||||
{
|
||||
// TODO new for 4.0 - avoid transient supplier?
|
||||
this.trailers = new Supplier<HttpFields>()
|
||||
{
|
||||
@Override
|
||||
public HttpFields get()
|
||||
{
|
||||
Map<String,String> t = trailers.get();
|
||||
if (t==null)
|
||||
return null;
|
||||
HttpFields fields = new HttpFields();
|
||||
for (Map.Entry<String,String> e : t.entrySet())
|
||||
{
|
||||
fields.add(e.getKey(),e.getValue());
|
||||
}
|
||||
return fields;
|
||||
}
|
||||
};
|
||||
this._trailers = new HttpFieldsSupplier(trailers);
|
||||
}
|
||||
|
||||
public Supplier<HttpFields> getTrailers()
|
||||
{
|
||||
return trailers;
|
||||
return _trailers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Supplier<Map<String,String>> getTrailerFields()
|
||||
{
|
||||
if (_trailers instanceof HttpFieldsSupplier)
|
||||
((HttpFieldsSupplier)_trailers).getSupplier();
|
||||
return null;
|
||||
}
|
||||
|
||||
protected MetaData.Response newResponseMetaData()
|
||||
|
@ -1511,4 +1504,33 @@ public class Response implements HttpServletResponse
|
|||
response.setHeader(HttpHeader.ETAG.asString(),et);
|
||||
}
|
||||
}
|
||||
|
||||
private static class HttpFieldsSupplier implements Supplier<HttpFields>
|
||||
{
|
||||
private final Supplier<Map<String, String>> _supplier;
|
||||
|
||||
public HttpFieldsSupplier(Supplier<Map<String, String>> trailers)
|
||||
{
|
||||
_supplier = trailers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HttpFields get()
|
||||
{
|
||||
Map<String,String> t = _supplier.get();
|
||||
if (t==null)
|
||||
return null;
|
||||
HttpFields fields = new HttpFields();
|
||||
for (Map.Entry<String,String> e : t.entrySet())
|
||||
{
|
||||
fields.add(e.getKey(),e.getValue());
|
||||
}
|
||||
return fields;
|
||||
}
|
||||
|
||||
public Supplier<Map<String, String>> getSupplier()
|
||||
{
|
||||
return _supplier;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,11 +23,11 @@ package org.eclipse.jetty.util;
|
|||
* <p>Parse a string in the form "host:port", handling IPv4 an IPv6 hosts</p>
|
||||
*
|
||||
* <p>The System property "org.eclipse.jetty.util.HostPort.STRIP_IPV6" can be set to a boolean
|
||||
* value to control of the square brackets are stripped off IPv6 addresses (default false).</p>
|
||||
* value to control of the square brackets are stripped off IPv6 addresses (default true).</p>
|
||||
*/
|
||||
public class HostPort
|
||||
{
|
||||
private final static boolean STRIP_IPV6 = Boolean.parseBoolean(System.getProperty("org.eclipse.jetty.util.HostPort.STRIP_IPV6","false"));
|
||||
private final static boolean STRIP_IPV6 = Boolean.parseBoolean(System.getProperty("org.eclipse.jetty.util.HostPort.STRIP_IPV6","true"));
|
||||
|
||||
private final String _host;
|
||||
private final int _port;
|
||||
|
|
|
@ -131,7 +131,7 @@ public class LocalFuzzer implements AutoCloseable
|
|||
prefix = "Frame[" + i + "]";
|
||||
|
||||
WebSocketFrame expected = expect.get(i);
|
||||
WebSocketFrame actual = framesQueue.poll(3, TimeUnit.SECONDS);
|
||||
WebSocketFrame actual = framesQueue.poll(10, TimeUnit.SECONDS);
|
||||
assertThat(prefix + ".poll", actual, notNullValue());
|
||||
|
||||
if (LOG.isDebugEnabled())
|
||||
|
|
|
@ -272,6 +272,18 @@ public class WebSocketCloseTest
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @throws Exception on test failure
|
||||
*/
|
||||
@Test
|
||||
public void testFastFailFastClose() throws Exception
|
||||
{
|
||||
fastFail();
|
||||
fastClose();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Test session open session cleanup (bug #474936)
|
||||
*
|
||||
|
|
|
@ -26,7 +26,7 @@ org.eclipse.jetty.LEVEL=WARN
|
|||
# org.eclipse.jetty.io.WriteFlusher.LEVEL=DEBUG
|
||||
# org.eclipse.jetty.io.FillInterest.LEVEL=DEBUG
|
||||
# org.eclipse.jetty.client.LEVEL=DEBUG
|
||||
# org.eclipse.jetty.websocket.LEVEL=DEBUG
|
||||
org.eclipse.jetty.websocket.LEVEL=DEBUG
|
||||
# org.eclipse.jetty.websocket.LEVEL=INFO
|
||||
# org.eclipse.jetty.websocket.jsr356.messages.LEVEL=DEBUG
|
||||
# org.eclipse.jetty.websocket.tests.LEVEL=DEBUG
|
||||
|
|
2
pom.xml
2
pom.xml
|
@ -22,7 +22,7 @@
|
|||
<jetty-test-policy-version>1.2</jetty-test-policy-version>
|
||||
<alpn.api.version>1.1.3.v20160715</alpn.api.version>
|
||||
<jsp.version>8.5.9.1</jsp.version>
|
||||
<servlet.api.version>4.0.0-b05</servlet.api.version>
|
||||
<servlet.api.version>4.0.0-b07</servlet.api.version>
|
||||
<!-- default values are unsupported, but required to be defined for reactor sanity reasons -->
|
||||
<alpn.version>undefined</alpn.version>
|
||||
</properties>
|
||||
|
|
Loading…
Reference in New Issue