Updated spdy configuration.
This commit is contained in:
parent
4ee88c3bc0
commit
e9705abf21
|
@ -12,24 +12,6 @@
|
|||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>single</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<descriptorRefs>
|
||||
<descriptorRef>config</descriptorRef>
|
||||
</descriptorRefs>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<!--
|
||||
<plugin>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-maven-plugin</artifactId>
|
||||
|
@ -40,18 +22,17 @@
|
|||
<jvmArgs>
|
||||
-Xbootclasspath/p:${settings.localRepository}/org/mortbay/jetty/npn/npn-boot/${npn.version}/npn-boot-${npn.version}.jar
|
||||
</jvmArgs>
|
||||
<jettyXml>${basedir}/src/main/config/etc/jetty-spdy.xml</jettyXml>
|
||||
<jettyXml>${basedir}/src/main/config/example-jetty-spdy.xml</jettyXml>
|
||||
<contextPath>/</contextPath>
|
||||
</configuration>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.jetty.spdy</groupId>
|
||||
<artifactId>spdy-jetty-http</artifactId>
|
||||
<artifactId>spdy-http-server</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</plugin>
|
||||
-->
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
|
@ -69,15 +50,14 @@
|
|||
<stopKey>quit</stopKey>
|
||||
<jvmArgs>
|
||||
-Xbootclasspath/p:${settings.localRepository}/org/mortbay/jetty/npn/npn-boot/${npn.version}/npn-boot-${npn.version}.jar
|
||||
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
|
||||
</jvmArgs>
|
||||
<jettyXml>${basedir}/src/main/config/etc/jetty-spdy-proxy.xml</jettyXml>
|
||||
<jettyXml>${basedir}/src/main/config/example-jetty-spdy-proxy.xml</jettyXml>
|
||||
<contextPath>/</contextPath>
|
||||
</configuration>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.eclipse.jetty.spdy</groupId>
|
||||
<artifactId>spdy-jetty-http</artifactId>
|
||||
<artifactId>spdy-http-server</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
|
|
@ -1,61 +1,74 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
|
||||
|
||||
<!-- ============================================================= -->
|
||||
<!-- Configure the Jetty Server instance with an ID "Server" -->
|
||||
<!-- by adding a SPDY connector. -->
|
||||
<!-- This configuration must be used in conjunction with jetty.xml -->
|
||||
<!-- It should not be used with jetty-https.xml as this connector -->
|
||||
<!-- can provide both HTTPS and SPDY connections -->
|
||||
<!-- ============================================================= -->
|
||||
<Configure id="Server" class="org.eclipse.jetty.server.Server">
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- Setup the SSL Context factory used to establish all TLS -->
|
||||
<!-- Connections and session. -->
|
||||
<!-- -->
|
||||
<!-- Consult the javadoc of o.e.j.util.ssl.SslContextFactory -->
|
||||
<!-- o.e.j.server.HttpConnectionFactory for all configuration -->
|
||||
<!-- that may be set here. -->
|
||||
<!-- =========================================================== -->
|
||||
<New id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory">
|
||||
<Set name="KeyStorePath"><Property name="jetty.home" default="." />/etc/keystore</Set>
|
||||
<Set name="KeyStorePassword">OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4</Set>
|
||||
<Set name="KeyManagerPassword">OBF:1u2u1wml1z7s1z7a1wnl1u2g</Set>
|
||||
<Set name="TrustStorePath"><Property name="jetty.home" default="." />/etc/keystore</Set>
|
||||
<Set name="TrustStorePassword">OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4</Set>
|
||||
<Set name="keyStorePath">src/main/resources/keystore.jks</Set>
|
||||
<Set name="keyStorePassword">storepwd</Set>
|
||||
<Set name="trustStorePath">src/main/resources/truststore.jks</Set>
|
||||
<Set name="trustStorePassword">storepwd</Set>
|
||||
<Set name="protocol">TLSv1</Set>
|
||||
</New>
|
||||
|
||||
<!--
|
||||
<Set class="org.eclipse.jetty.npn.NextProtoNego" name="debug" type="boolean">true</Set>
|
||||
-->
|
||||
|
||||
<New id="tlsHttpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
|
||||
<Arg>
|
||||
<New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
|
||||
<Set name="secureScheme">https</Set>
|
||||
<Set name="securePort">
|
||||
<Property name="jetty.tls.port" default="8443"/>
|
||||
</Set>
|
||||
<Set name="outputBufferSize">32768</Set>
|
||||
<Set name="requestHeaderSize">8192</Set>
|
||||
<Set name="responseHeaderSize">8192</Set>
|
||||
|
||||
<!-- Uncomment to enable handling of X-Forwarded- style headers
|
||||
<Call name="addCustomizer">
|
||||
<Arg><New class="org.eclipse.jetty.server.ForwardedRequestCustomizer"/></Arg>
|
||||
</Call>
|
||||
-->
|
||||
</New>
|
||||
</Arg>
|
||||
<Call name="addCustomizer">
|
||||
<Arg>
|
||||
<New class="org.eclipse.jetty.server.SecureRequestCustomizer"/>
|
||||
</Arg>
|
||||
</Call>
|
||||
</New>
|
||||
|
||||
<!--
|
||||
This is the upstream server connector. It speaks non-SSL SPDY/3(HTTP) on port 9090.
|
||||
-->
|
||||
<Call name="addConnector">
|
||||
<Arg>
|
||||
<New class="org.eclipse.jetty.server.ServerConnector">
|
||||
<Arg name="server"><Ref id="Server" /></Arg>
|
||||
<Arg name="server">
|
||||
<Ref id="Server"/>
|
||||
</Arg>
|
||||
<Arg name="factories">
|
||||
<Array type="org.eclipse.jetty.server.ConnectionFactory">
|
||||
<!-- SPDY/3 Connection factory -->
|
||||
<Item>
|
||||
<New class="org.eclipse.jetty.spdy.server.http.HTTPSPDYServerConnectionFactory">
|
||||
<Arg name="version" type="int">3</Arg>
|
||||
<Arg name="config"><Ref id="httpConfig" /></Arg>
|
||||
</New>
|
||||
<New class="org.eclipse.jetty.spdy.server.http.HTTPSPDYServerConnectionFactory">
|
||||
<Arg name="version" type="int">3</Arg>
|
||||
<Arg name="config">
|
||||
<Ref id="tlsHttpConfig"/>
|
||||
</Arg>
|
||||
</New>
|
||||
</Item>
|
||||
</Array>
|
||||
</Arg>
|
||||
<Set name="Port">9090</Set>
|
||||
<Set name="DefaultProtocol">spdy/3</Set>
|
||||
<Set name="port">9090</Set>
|
||||
</New>
|
||||
</Arg>
|
||||
</Call>
|
||||
|
||||
<!--
|
||||
This ProxyEngine translates the incoming SPDY/x(HTTP) request to SPDY/3(HTTP)
|
||||
This ProxyEngine translates the incoming SPDY/x(HTTP) request to SPDY/2(HTTP)
|
||||
-->
|
||||
<New id="spdyProxyEngine" class="org.eclipse.jetty.spdy.server.proxy.SPDYProxyEngine">
|
||||
<Arg>
|
||||
|
@ -74,7 +87,9 @@
|
|||
<New id="proxyEngineSelector" class="org.eclipse.jetty.spdy.server.proxy.ProxyEngineSelector">
|
||||
<Call name="putProxyEngine">
|
||||
<Arg>spdy/3</Arg>
|
||||
<Arg><Ref id="spdyProxyEngine" /></Arg>
|
||||
<Arg>
|
||||
<Ref id="spdyProxyEngine"/>
|
||||
</Arg>
|
||||
</Call>
|
||||
<Set name="proxyServerInfos">
|
||||
<Map>
|
||||
|
@ -101,7 +116,7 @@
|
|||
-->
|
||||
<Call name="addConnector">
|
||||
<Arg>
|
||||
<New class="org.eclipse.jetty.spdy.server.proxy.HTTPSPDYProxyConnector">
|
||||
<New class="org.eclipse.jetty.spdy.server.proxy.HTTPSPDYProxyServerConnector">
|
||||
<Arg>
|
||||
<Ref id="Server"/>
|
||||
</Arg>
|
||||
|
@ -114,7 +129,7 @@
|
|||
</Call>
|
||||
<Call name="addConnector">
|
||||
<Arg>
|
||||
<New class="org.eclipse.jetty.spdy.server.proxy.HTTPSPDYProxyConnector">
|
||||
<New class="org.eclipse.jetty.spdy.server.proxy.HTTPSPDYProxyServerConnector">
|
||||
<Arg>
|
||||
<Ref id="Server"/>
|
||||
</Arg>
|
|
@ -0,0 +1,138 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
|
||||
|
||||
<Configure id="Server" class="org.eclipse.jetty.server.Server">
|
||||
|
||||
<New id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory">
|
||||
<Set name="keyStorePath">src/main/resources/keystore.jks</Set>
|
||||
<Set name="keyStorePassword">storepwd</Set>
|
||||
<Set name="trustStorePath">src/main/resources/truststore.jks</Set>
|
||||
<Set name="trustStorePassword">storepwd</Set>
|
||||
<Set name="protocol">TLSv1</Set>
|
||||
</New>
|
||||
|
||||
<New id="tlsHttpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
|
||||
<Arg>
|
||||
<New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
|
||||
<Set name="secureScheme">https</Set>
|
||||
<Set name="securePort">
|
||||
<Property name="jetty.tls.port" default="8443"/>
|
||||
</Set>
|
||||
<Set name="outputBufferSize">32768</Set>
|
||||
<Set name="requestHeaderSize">8192</Set>
|
||||
<Set name="responseHeaderSize">8192</Set>
|
||||
|
||||
<!-- Uncomment to enable handling of X-Forwarded- style headers
|
||||
<Call name="addCustomizer">
|
||||
<Arg><New class="org.eclipse.jetty.server.ForwardedRequestCustomizer"/></Arg>
|
||||
</Call>
|
||||
-->
|
||||
</New>
|
||||
</Arg>
|
||||
<Call name="addCustomizer">
|
||||
<Arg>
|
||||
<New class="org.eclipse.jetty.server.SecureRequestCustomizer"/>
|
||||
</Arg>
|
||||
</Call>
|
||||
</New>
|
||||
|
||||
<New id="pushStrategy" class="org.eclipse.jetty.spdy.server.http.ReferrerPushStrategy">
|
||||
<!-- Uncomment to blacklist browsers for this push strategy. If one of the blacklisted Strings occurs in the
|
||||
user-agent header sent by the client, push will be disabled for this browser. This is case insensitive" -->
|
||||
<!--
|
||||
<Set name="UserAgentBlacklist">
|
||||
<Array type="String">
|
||||
<Item>.*(?i)firefox/14.*</Item>
|
||||
<Item>.*(?i)firefox/15.*</Item>
|
||||
<Item>.*(?i)firefox/16.*</Item>
|
||||
</Array>
|
||||
</Set>
|
||||
-->
|
||||
|
||||
<!-- Uncomment to override default file extensions to push -->
|
||||
<!--
|
||||
<Set name="PushRegexps">
|
||||
<Array type="String">
|
||||
<Item>.*\.css</Item>
|
||||
<Item>.*\.js</Item>
|
||||
<Item>.*\.png</Item>
|
||||
<Item>.*\.jpg</Item>
|
||||
<Item>.*\.gif</Item>
|
||||
</Array>
|
||||
</Set>
|
||||
-->
|
||||
<Set name="referrerPushPeriod">5000</Set>
|
||||
<Set name="maxAssociatedResources">32</Set>
|
||||
</New>
|
||||
|
||||
<Call id="sslConnector" name="addConnector">
|
||||
<Arg>
|
||||
<New class="org.eclipse.jetty.server.ServerConnector">
|
||||
<Arg name="server"><Ref id="Server"/></Arg>
|
||||
<Arg name="factories">
|
||||
<Array type="org.eclipse.jetty.server.ConnectionFactory">
|
||||
|
||||
<!-- SSL Connection factory with NPN as next protocol -->
|
||||
<Item>
|
||||
<New class="org.eclipse.jetty.server.SslConnectionFactory">
|
||||
<Arg name="next">npn</Arg>
|
||||
<Arg name="sslContextFactory">
|
||||
<Ref id="sslContextFactory"/>
|
||||
</Arg>
|
||||
</New>
|
||||
</Item>
|
||||
|
||||
<!-- NPN Connection factory with HTTP as default protocol -->
|
||||
<Item>
|
||||
<New class="org.eclipse.jetty.spdy.server.NPNServerConnectionFactory">
|
||||
<Arg name="protocols">
|
||||
<Array type="String">
|
||||
<Item>spdy/3</Item>
|
||||
<Item>spdy/2</Item>
|
||||
<Item>http/1.1</Item>
|
||||
</Array>
|
||||
</Arg>
|
||||
<Set name="defaultProtocol">http/1.1</Set>
|
||||
</New>
|
||||
</Item>
|
||||
|
||||
<!-- SPDY/3 Connection factory -->
|
||||
<Item>
|
||||
<New class="org.eclipse.jetty.spdy.server.http.HTTPSPDYServerConnectionFactory">
|
||||
<Arg name="version" type="int">3</Arg>
|
||||
<Arg name="config">
|
||||
<Ref id="tlsHttpConfig"/>
|
||||
</Arg>
|
||||
<Arg name="pushStrategy">
|
||||
<Ref id="pushStrategy"/>
|
||||
</Arg>
|
||||
</New>
|
||||
</Item>
|
||||
|
||||
<!-- SPDY/2 Connection factory -->
|
||||
<Item>
|
||||
<New class="org.eclipse.jetty.spdy.server.http.HTTPSPDYServerConnectionFactory">
|
||||
<Arg name="version" type="int">2</Arg>
|
||||
<Arg name="config">
|
||||
<Ref id="tlsHttpConfig"/>
|
||||
</Arg>
|
||||
</New>
|
||||
</Item>
|
||||
|
||||
<!-- HTTP Connection factory -->
|
||||
<Item>
|
||||
<New class="org.eclipse.jetty.server.HttpConnectionFactory">
|
||||
<Arg name="config">
|
||||
<Ref id="tlsHttpConfig"/>
|
||||
</Arg>
|
||||
</New>
|
||||
</Item>
|
||||
</Array>
|
||||
</Arg>
|
||||
|
||||
<Set name="port">8443</Set>
|
||||
</New>
|
||||
</Arg>
|
||||
</Call>
|
||||
|
||||
</Configure>
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
|
||||
version="2.5">
|
||||
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
|
||||
version="3.0">
|
||||
</web-app>
|
||||
|
|
|
@ -15,6 +15,23 @@
|
|||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>single</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<descriptorRefs>
|
||||
<descriptorRef>config</descriptorRef>
|
||||
</descriptorRefs>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<executions>
|
||||
|
|
|
@ -0,0 +1,158 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
|
||||
|
||||
<!-- ============================================================= -->
|
||||
<!-- Configure the Jetty Server instance with an ID "Server" -->
|
||||
<!-- by adding a SPDY connector. -->
|
||||
<!-- This configuration must be used in conjunction with jetty.xml -->
|
||||
<!-- It should not be used with jetty-https.xml as this connector -->
|
||||
<!-- can provide both HTTPS and SPDY connections -->
|
||||
<!-- ============================================================= -->
|
||||
<Configure id="Server" class="org.eclipse.jetty.server.Server">
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- Setup the SSL Context factory used to establish all TLS -->
|
||||
<!-- Connections and session. -->
|
||||
<!-- -->
|
||||
<!-- Consult the javadoc of o.e.j.util.ssl.SslContextFactory -->
|
||||
<!-- o.e.j.server.HttpConnectionFactory for all configuration -->
|
||||
<!-- that may be set here. -->
|
||||
<!-- =========================================================== -->
|
||||
<New id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory">
|
||||
<Set name="KeyStorePath"><Property name="jetty.home" default="." />/etc/keystore</Set>
|
||||
<Set name="KeyStorePassword">OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4</Set>
|
||||
<Set name="KeyManagerPassword">OBF:1u2u1wml1z7s1z7a1wnl1u2g</Set>
|
||||
<Set name="TrustStorePath"><Property name="jetty.home" default="." />/etc/keystore</Set>
|
||||
<Set name="TrustStorePassword">OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4</Set>
|
||||
</New>
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- Enables NPN debugging on System.err -->
|
||||
<!-- ===========================================================
|
||||
<Set class="org.eclipse.jetty.npn.NextProtoNego" name="debug" type="boolean">true</Set>
|
||||
-->
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- Create a TLS specific HttpConfiguration based on the -->
|
||||
<!-- common HttpConfiguration defined in jetty.xml -->
|
||||
<!-- Add a SecureRequestCustomizer to extract certificate and -->
|
||||
<!-- session information -->
|
||||
<!-- =========================================================== -->
|
||||
<New id="tlsHttpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
|
||||
<Arg><Ref id="httpConfig"/></Arg>
|
||||
<Call name="addCustomizer">
|
||||
<Arg><New class="org.eclipse.jetty.server.SecureRequestCustomizer"/></Arg>
|
||||
</Call>
|
||||
</New>
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- This is the upstream server connector. -->
|
||||
<!-- It speaks non-SSL SPDY/3(HTTP) on port 9090. -->
|
||||
<!-- =========================================================== -->
|
||||
<Call name="addConnector">
|
||||
<Arg>
|
||||
<New class="org.eclipse.jetty.server.ServerConnector">
|
||||
<Arg name="server">
|
||||
<Ref id="Server"/>
|
||||
</Arg>
|
||||
<Arg name="factories">
|
||||
<Array type="org.eclipse.jetty.server.ConnectionFactory">
|
||||
<!-- SPDY/3 Connection factory -->
|
||||
<Item>
|
||||
<New class="org.eclipse.jetty.spdy.server.http.HTTPSPDYServerConnectionFactory">
|
||||
<Arg name="version" type="int">3</Arg>
|
||||
<Arg name="config">
|
||||
<Ref id="tlsHttpConfig"/>
|
||||
</Arg>
|
||||
</New>
|
||||
</Item>
|
||||
</Array>
|
||||
</Arg>
|
||||
<Set name="port">9090</Set>
|
||||
</New>
|
||||
</Arg>
|
||||
</Call>
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- This ProxyEngine translates the incoming SPDY/x(HTTP) -->
|
||||
<!-- requests to SPDY/2(HTTP) -->
|
||||
<!-- =========================================================== -->
|
||||
<New id="spdyProxyEngine" class="org.eclipse.jetty.spdy.server.proxy.SPDYProxyEngine">
|
||||
<Arg>
|
||||
<New class="org.eclipse.jetty.spdy.client.SPDYClient$Factory">
|
||||
<Call name="start"/>
|
||||
</New>
|
||||
</Arg>
|
||||
</New>
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- The ProxyEngineSelector receives SPDY/x(HTTP) requests -->
|
||||
<!-- from proxy connectors below and is configured to process -->
|
||||
<!-- requests for host "localhost". -->
|
||||
<!-- Such requests are converted from SPDY/x(HTTP) to -->
|
||||
<!-- SPDY/3(HTTP) by the configured ProxyEngine and forwarded -->
|
||||
<!-- to 127.0.0.1:9090, where they are served by the upstream -->
|
||||
<!-- server above. -->
|
||||
<!-- =========================================================== -->
|
||||
<New id="proxyEngineSelector" class="org.eclipse.jetty.spdy.server.proxy.ProxyEngineSelector">
|
||||
<Call name="putProxyEngine">
|
||||
<Arg>spdy/3</Arg>
|
||||
<Arg>
|
||||
<Ref id="spdyProxyEngine"/>
|
||||
</Arg>
|
||||
</Call>
|
||||
<Set name="proxyServerInfos">
|
||||
<Map>
|
||||
<Entry>
|
||||
<Item>localhost</Item>
|
||||
<Item>
|
||||
<New class="org.eclipse.jetty.spdy.server.proxy.ProxyEngineSelector$ProxyServerInfo">
|
||||
<Arg type="String">spdy/3</Arg>
|
||||
<Arg>127.0.0.1</Arg>
|
||||
<Arg type="int">9090</Arg>
|
||||
</New>
|
||||
</Item>
|
||||
</Entry>
|
||||
</Map>
|
||||
</Set>
|
||||
</New>
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- These are the reverse proxy connectors accepting requests -->
|
||||
<!-- from clients. -->
|
||||
<!-- They accept non-SSL (on port 8080) and SSL (on port 8443) -->
|
||||
<!-- HTTP, SPDY/2(HTTP) and SPDY/3(HTTP). -->
|
||||
<!-- Non-SPDY HTTP requests are converted to SPDY internally -->
|
||||
<!-- and passed to the ProxyEngine above. -->
|
||||
<!-- =========================================================== -->
|
||||
<Call name="addConnector">
|
||||
<Arg>
|
||||
<New class="org.eclipse.jetty.spdy.server.proxy.HTTPSPDYProxyServerConnector">
|
||||
<Arg>
|
||||
<Ref id="Server"/>
|
||||
</Arg>
|
||||
<Arg>
|
||||
<Ref id="proxyEngineSelector"/>
|
||||
</Arg>
|
||||
<Set name="Port">8080</Set>
|
||||
</New>
|
||||
</Arg>
|
||||
</Call>
|
||||
<Call name="addConnector">
|
||||
<Arg>
|
||||
<New class="org.eclipse.jetty.spdy.server.proxy.HTTPSPDYProxyServerConnector">
|
||||
<Arg>
|
||||
<Ref id="Server"/>
|
||||
</Arg>
|
||||
<Arg>
|
||||
<Ref id="sslContextFactory"/>
|
||||
</Arg>
|
||||
<Arg>
|
||||
<Ref id="proxyEngineSelector"/>
|
||||
</Arg>
|
||||
<Set name="Port">8443</Set>
|
||||
</New>
|
||||
</Arg>
|
||||
</Call>
|
||||
|
||||
</Configure>
|
|
@ -26,6 +26,12 @@
|
|||
<Set name="TrustStorePassword">OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4</Set>
|
||||
</New>
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- Enables NPN debugging on System.err -->
|
||||
<!-- ===========================================================
|
||||
<Set class="org.eclipse.jetty.npn.NextProtoNego" name="debug" type="boolean">true</Set>
|
||||
-->
|
||||
|
||||
<!-- =========================================================== -->
|
||||
<!-- Create a TLS specific HttpConfiguration based on the -->
|
||||
<!-- common HttpConfiguration defined in jetty.xml -->
|
|
@ -16,7 +16,6 @@
|
|||
// ========================================================================
|
||||
//
|
||||
|
||||
|
||||
package org.eclipse.jetty.spdy.server.http;
|
||||
|
||||
import java.util.Collections;
|
||||
|
@ -51,29 +50,28 @@ public class HTTPSPDYServerConnector extends ServerConnector
|
|||
|
||||
public HTTPSPDYServerConnector(Server server, SslContextFactory sslContextFactory, Map<Short, PushStrategy> pushStrategies)
|
||||
{
|
||||
this(server,new HttpConfiguration(),sslContextFactory,pushStrategies);
|
||||
this(server, new HttpConfiguration(), sslContextFactory, pushStrategies);
|
||||
}
|
||||
|
||||
public HTTPSPDYServerConnector(Server server, short version, HttpConfiguration httpConfiguration, PushStrategy push)
|
||||
{
|
||||
super(server,new HTTPSPDYServerConnectionFactory(version,httpConfiguration,push));
|
||||
|
||||
super(server, new HTTPSPDYServerConnectionFactory(version, httpConfiguration, push));
|
||||
}
|
||||
|
||||
public HTTPSPDYServerConnector(Server server, HttpConfiguration config, SslContextFactory sslContextFactory, Map<Short, PushStrategy> pushStrategies)
|
||||
{
|
||||
super(server,AbstractConnectionFactory.getFactories(sslContextFactory,
|
||||
sslContextFactory==null
|
||||
?new ConnectionFactory[] {new HttpConnectionFactory(config)}
|
||||
:new ConnectionFactory[] {new NPNServerConnectionFactory("spdy/3","spdy/2","http/1.1"),
|
||||
new HttpConnectionFactory(config),
|
||||
new HTTPSPDYServerConnectionFactory(SPDY.V3,new HttpConfiguration(),getPushStrategy(SPDY.V3, pushStrategies)),
|
||||
new HTTPSPDYServerConnectionFactory(SPDY.V2,new HttpConfiguration(),getPushStrategy(SPDY.V2, pushStrategies))}));
|
||||
if (getConnectionFactory(NPNServerConnectionFactory.class)!=null)
|
||||
getConnectionFactory(NPNServerConnectionFactory.class).setDefaultProtocol("http/1.1");
|
||||
super(server, AbstractConnectionFactory.getFactories(sslContextFactory,
|
||||
sslContextFactory == null
|
||||
? new ConnectionFactory[]{new HttpConnectionFactory(config)}
|
||||
: new ConnectionFactory[]{new NPNServerConnectionFactory("spdy/3", "spdy/2", "http/1.1"),
|
||||
new HttpConnectionFactory(config),
|
||||
new HTTPSPDYServerConnectionFactory(SPDY.V3, config, getPushStrategy(SPDY.V3, pushStrategies)),
|
||||
new HTTPSPDYServerConnectionFactory(SPDY.V2, config, getPushStrategy(SPDY.V2, pushStrategies))}));
|
||||
NPNServerConnectionFactory npnConnectionFactory = getConnectionFactory(NPNServerConnectionFactory.class);
|
||||
if (npnConnectionFactory != null)
|
||||
npnConnectionFactory.setDefaultProtocol("http/1.1");
|
||||
}
|
||||
|
||||
|
||||
private static PushStrategy getPushStrategy(short version, Map<Short, PushStrategy> pushStrategies)
|
||||
{
|
||||
PushStrategy pushStrategy = pushStrategies.get(version);
|
||||
|
|
|
@ -1,40 +0,0 @@
|
|||
//
|
||||
// ========================================================================
|
||||
// Copyright (c) 1995-2012 Mort Bay Consulting Pty. Ltd.
|
||||
// ------------------------------------------------------------------------
|
||||
// All rights reserved. This program and the accompanying materials
|
||||
// are made available under the terms of the Eclipse Public License v1.0
|
||||
// and Apache License v2.0 which accompanies this distribution.
|
||||
//
|
||||
// The Eclipse Public License is available at
|
||||
// http://www.eclipse.org/legal/epl-v10.html
|
||||
//
|
||||
// The Apache License v2.0 is available at
|
||||
// http://www.opensource.org/licenses/apache2.0.php
|
||||
//
|
||||
// You may elect to redistribute this code under either of these licenses.
|
||||
// ========================================================================
|
||||
//
|
||||
|
||||
|
||||
package org.eclipse.jetty.spdy.server.proxy;
|
||||
|
||||
import org.eclipse.jetty.server.HttpConfiguration;
|
||||
import org.eclipse.jetty.server.Server;
|
||||
import org.eclipse.jetty.spdy.api.SPDY;
|
||||
import org.eclipse.jetty.spdy.server.SPDYServerConnector;
|
||||
import org.eclipse.jetty.util.ssl.SslContextFactory;
|
||||
|
||||
public class HTTPSPDYProxyConnector extends SPDYServerConnector
|
||||
{
|
||||
public HTTPSPDYProxyConnector(Server server, ProxyEngineSelector proxyEngineSelector)
|
||||
{
|
||||
this(server, null, proxyEngineSelector);
|
||||
}
|
||||
|
||||
public HTTPSPDYProxyConnector(Server server, SslContextFactory sslContextFactory, ProxyEngineSelector proxyEngineSelector)
|
||||
{
|
||||
super(server, sslContextFactory, proxyEngineSelector);
|
||||
addConnectionFactory(new ProxyHTTPConnectionFactory(new HttpConfiguration(), SPDY.V2, proxyEngineSelector));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
//
|
||||
// ========================================================================
|
||||
// Copyright (c) 1995-2012 Mort Bay Consulting Pty. Ltd.
|
||||
// ------------------------------------------------------------------------
|
||||
// All rights reserved. This program and the accompanying materials
|
||||
// are made available under the terms of the Eclipse Public License v1.0
|
||||
// and Apache License v2.0 which accompanies this distribution.
|
||||
//
|
||||
// The Eclipse Public License is available at
|
||||
// http://www.eclipse.org/legal/epl-v10.html
|
||||
//
|
||||
// The Apache License v2.0 is available at
|
||||
// http://www.opensource.org/licenses/apache2.0.php
|
||||
//
|
||||
// You may elect to redistribute this code under either of these licenses.
|
||||
// ========================================================================
|
||||
//
|
||||
|
||||
|
||||
package org.eclipse.jetty.spdy.server.proxy;
|
||||
|
||||
import org.eclipse.jetty.server.ConnectionFactory;
|
||||
import org.eclipse.jetty.server.HttpConfiguration;
|
||||
import org.eclipse.jetty.server.Server;
|
||||
import org.eclipse.jetty.server.ServerConnector;
|
||||
import org.eclipse.jetty.spdy.api.SPDY;
|
||||
import org.eclipse.jetty.spdy.server.NPNServerConnectionFactory;
|
||||
import org.eclipse.jetty.spdy.server.http.HTTPSPDYServerConnectionFactory;
|
||||
import org.eclipse.jetty.util.ssl.SslContextFactory;
|
||||
|
||||
public class HTTPSPDYProxyServerConnector extends ServerConnector
|
||||
{
|
||||
public HTTPSPDYProxyServerConnector(Server server, ProxyEngineSelector proxyEngineSelector)
|
||||
{
|
||||
this(server, new HttpConfiguration(), proxyEngineSelector);
|
||||
}
|
||||
|
||||
public HTTPSPDYProxyServerConnector(Server server, HttpConfiguration config, ProxyEngineSelector proxyEngineSelector)
|
||||
{
|
||||
this(server, null, config, proxyEngineSelector);
|
||||
}
|
||||
|
||||
public HTTPSPDYProxyServerConnector(Server server, SslContextFactory sslContextFactory, ProxyEngineSelector proxyEngineSelector)
|
||||
{
|
||||
this(server, sslContextFactory, new HttpConfiguration(), proxyEngineSelector);
|
||||
}
|
||||
|
||||
public HTTPSPDYProxyServerConnector(Server server, SslContextFactory sslContextFactory, HttpConfiguration config, ProxyEngineSelector proxyEngineSelector)
|
||||
{
|
||||
super(server,
|
||||
sslContextFactory,
|
||||
sslContextFactory == null
|
||||
? new ConnectionFactory[]{new ProxyHTTPConnectionFactory(config, SPDY.V2, proxyEngineSelector)}
|
||||
: new ConnectionFactory[]{new NPNServerConnectionFactory("spdy/3", "spdy/2", "http/1.1"),
|
||||
new HTTPSPDYServerConnectionFactory(SPDY.V3, config),
|
||||
new HTTPSPDYServerConnectionFactory(SPDY.V2, config),
|
||||
new ProxyHTTPConnectionFactory(config, SPDY.V2, proxyEngineSelector)});
|
||||
NPNServerConnectionFactory npnConnectionFactory = getConnectionFactory(NPNServerConnectionFactory.class);
|
||||
if (npnConnectionFactory != null)
|
||||
npnConnectionFactory.setDefaultProtocol("http/1.1");
|
||||
}
|
||||
}
|
|
@ -31,6 +31,7 @@ import java.util.concurrent.CountDownLatch;
|
|||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.eclipse.jetty.server.Server;
|
||||
import org.eclipse.jetty.server.ServerConnector;
|
||||
import org.eclipse.jetty.spdy.api.BytesDataInfo;
|
||||
import org.eclipse.jetty.spdy.api.DataInfo;
|
||||
import org.eclipse.jetty.spdy.api.GoAwayInfo;
|
||||
|
@ -90,7 +91,7 @@ public class ProxyHTTPSPDYTest
|
|||
private SPDYClient.Factory factory;
|
||||
private Server server;
|
||||
private Server proxy;
|
||||
private SPDYServerConnector proxyConnector;
|
||||
private ServerConnector proxyConnector;
|
||||
|
||||
public ProxyHTTPSPDYTest(short version)
|
||||
{
|
||||
|
@ -115,7 +116,7 @@ public class ProxyHTTPSPDYTest
|
|||
SPDYProxyEngine spdyProxyEngine = new SPDYProxyEngine(factory);
|
||||
proxyEngineSelector.putProxyEngine("spdy/" + version, spdyProxyEngine);
|
||||
proxyEngineSelector.putProxyServerInfo("localhost", new ProxyEngineSelector.ProxyServerInfo("spdy/" + version, address.getHostName(), address.getPort()));
|
||||
proxyConnector = new HTTPSPDYProxyConnector(server, proxyEngineSelector);
|
||||
proxyConnector = new HTTPSPDYProxyServerConnector(server, proxyEngineSelector);
|
||||
proxyConnector.setPort(0);
|
||||
proxy.addConnector(proxyConnector);
|
||||
proxy.start();
|
||||
|
|
Loading…
Reference in New Issue