Propagate https scheme when using Jetty
Update Jetty 9 SSL support to register the SecureRequestCustomizer which ensures that calling getScheme() on the HttpServletRequest returns 'https'. Fixes gh-2232
This commit is contained in:
parent
0702b4e7e3
commit
fe20116b68
|
|
@ -29,7 +29,9 @@ import org.eclipse.jetty.http.HttpVersion;
|
||||||
import org.eclipse.jetty.http.MimeTypes;
|
import org.eclipse.jetty.http.MimeTypes;
|
||||||
import org.eclipse.jetty.server.AbstractConnector;
|
import org.eclipse.jetty.server.AbstractConnector;
|
||||||
import org.eclipse.jetty.server.Connector;
|
import org.eclipse.jetty.server.Connector;
|
||||||
|
import org.eclipse.jetty.server.HttpConfiguration;
|
||||||
import org.eclipse.jetty.server.HttpConnectionFactory;
|
import org.eclipse.jetty.server.HttpConnectionFactory;
|
||||||
|
import org.eclipse.jetty.server.SecureRequestCustomizer;
|
||||||
import org.eclipse.jetty.server.Server;
|
import org.eclipse.jetty.server.Server;
|
||||||
import org.eclipse.jetty.server.ServerConnector;
|
import org.eclipse.jetty.server.ServerConnector;
|
||||||
import org.eclipse.jetty.server.SessionManager;
|
import org.eclipse.jetty.server.SessionManager;
|
||||||
|
|
@ -492,9 +494,15 @@ public class JettyEmbeddedServletContainerFactory extends
|
||||||
@Override
|
@Override
|
||||||
public ServerConnector getConnector(Server server,
|
public ServerConnector getConnector(Server server,
|
||||||
SslContextFactory sslContextFactory, int port) {
|
SslContextFactory sslContextFactory, int port) {
|
||||||
|
HttpConfiguration config = new HttpConfiguration();
|
||||||
|
config.setSecureScheme("https");
|
||||||
|
config.setSecurePort(port);
|
||||||
|
config.addCustomizer(new SecureRequestCustomizer());
|
||||||
|
HttpConnectionFactory connectionFactory = new HttpConnectionFactory(config);
|
||||||
|
SslConnectionFactory sslConnectionFactory = new SslConnectionFactory(
|
||||||
|
sslContextFactory, HttpVersion.HTTP_1_1.asString());
|
||||||
ServerConnector serverConnector = new ServerConnector(server,
|
ServerConnector serverConnector = new ServerConnector(server,
|
||||||
new SslConnectionFactory(sslContextFactory,
|
sslConnectionFactory, connectionFactory);
|
||||||
HttpVersion.HTTP_1_1.asString()), new HttpConnectionFactory());
|
|
||||||
serverConnector.setPort(port);
|
serverConnector.setPort(port);
|
||||||
return serverConnector;
|
return serverConnector;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue