The version I used is 9.0.0.v20130308 from
http://download.eclipse.org/jetty/ . I did not use a Github snapshot; have
not build from the source code.

best,
Arjan

On 12 March 2013 22:12, Arjan Peddemors <[email protected]> wrote:

> Hey Thomas, thanks for describing the steps in detail.
> Yes, you are right, I missed that (should be using HTTPProxyEngine, *not*
> SPDYProxyEngine).
>
> Now, I've done as you described. But unfortunately, it still does not work
> for me. This is the Jetty output, after I open https://localhost:8443/ with 
> Chrome:
> ...
> 2013-03-12 21:56:13.151:INFO:oejssp.HTTPSPDYProxyServerConnector:main:
> Started HTTPSPDYProxyServerConnector@119c149{HTTP/1.1}{0.0.0.0:8080}
> 2013-03-12 21:56:13.454:INFO:oejssp.HTTPSPDYProxyServerConnector:main:
> Started HTTPSPDYProxyServerConnector@52d334{SSL-npn}{0.0.0.0:8443}
> 2013-03-12 21:56:24.558:WARN:oejut.QueuedThreadPool:qtp10883068-58:
> java.lang.NoSuchMethodError:
> sun.security.ssl.EngineInputRecord.decrypt(Lsun/security/ssl/CipherBox;Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
>  at sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:957)
> at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:888)
>  at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:762)
> at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624)
>  at
> org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.fill(SslConnection.java:487)
> at
> org.eclipse.jetty.spdy.server.NextProtoNegoServerConnection.fill(NextProtoNegoServerConnection.java:100)
>  at
> org.eclipse.jetty.spdy.server.NextProtoNegoServerConnection.onFillable(NextProtoNegoServerConnection.java:68)
> at
> org.eclipse.jetty.io.AbstractConnection$ReadCallback.run(AbstractConnection.java:240)
>  at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:589)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:520)
>  at java.lang.Thread.run(Thread.java:722)
> 2013-03-12 21:56:24.566:WARN:oejut.QueuedThreadPool:qtp10883068-29:
> java.lang.NoSuchMethodError:
> sun.security.ssl.EngineInputRecord.decrypt(Lsun/security/ssl/CipherBox;Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
>  at sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:957)
> at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:888)
>  at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:762)
> at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624)
>  at
> org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.fill(SslConnection.java:487)
> at
> org.eclipse.jetty.spdy.server.NextProtoNegoServerConnection.fill(NextProtoNegoServerConnection.java:100)
>  at
> org.eclipse.jetty.spdy.server.NextProtoNegoServerConnection.onFillable(NextProtoNegoServerConnection.java:68)
> at
> org.eclipse.jetty.io.AbstractConnection$ReadCallback.run(AbstractConnection.java:240)
>  at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:589)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:520)
>  at java.lang.Thread.run(Thread.java:722)
>
> I've tried two different npn-boot jars: the most recent one and the one
> you used in your steps, but that does not make a difference. Opening
> http://localhost:8080/ gives a different error. The same environment on
> Windows (7, JDK7, Chrome as client) gives the same error.
>
> We have been using the same versions right?
>
>
>
> On 12 March 2013 09:19, Thomas Becker <[email protected]> wrote:
>
>> Hi Arjan,
>>
>> that's because you're trying to redirect to an HTTP server with a
>> SPDYProxyEngine. Instead you've to use an HTTPProxyEngine as described in
>> the example configuration in the documentation for proxying to HTTP.
>>
>> To verify that it works I used the latest jetty-9 distribution and wrote
>> down the steps for you:
>>
>> 1. cp npn jar to $JETTY_HOME
>> 2. uncomment OPTIONS=spdy and add etc/jetty-spdy-proxy.xml in start.ini
>> 3. comment jetty-http.xml
>> 4. Copy and Paste the HTTP Proxy config from the documentation:
>> http://www.eclipse.org/jetty/**documentation/current/spdy-**
>> configuring-proxy.html#spdy-**to-http-example-config<http://www.eclipse.org/jetty/documentation/current/spdy-configuring-proxy.html#spdy-to-http-example-config>
>> 5. replace IP (127.0.0.1) and port (9090) with www.google.com and 80
>> 6. start jetty: java -Xbootclasspath/p:npn-boot-1.**1.0.v20120525.jar
>> -jar start.jar
>> 6. try it, works
>>
>> As you're proxying to another server outside jetty you can safely remove
>> the http connector for port 9090 from that config.
>> Also it's fine if you use --exec and place the npn jar inside lib as you
>> did.
>>
>> Cheers,
>> Thomas
>>
>>
>> Am 3/11/13 10:34 PM, schrieb Arjan Peddemors:
>>
>>> Hi Thomas, thanks for your reply.
>>>
>>> Yes, I have read the SPDY proxy example documentation.
>>>
>>> I am using jetty-9.0.0.v20130308 .
>>>
>>> This is my start.ini:
>>> --exec
>>> -Xbootclasspath/p:lib/npn-**boot-1.1.2.v20130305.jar
>>> OPTIONS=Server,ext,spdy
>>> etc/jetty.xml
>>> etc/jetty-spdy-proxy.xml
>>>
>>> I have not touched the etc/jetty.xml file.
>>> This is in etc/jetty-spdy-proxy.xml:
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN"
>>> "http://www.eclipse.org/jetty/**configure_9_0.dtd<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"><Property name="jetty.home" default="."
>>> />/etc/keystore</Set>
>>>      <Set name="KeyStorePassword">OBF:**1vny1zlo1x8e1vnw1vn61x8g1zlu1v**
>>> n4</Set>
>>>      <Set name="KeyManagerPassword">OBF:**1u2u1wml1z7s1z7a1wnl1u2g</Set>
>>>      <Set name="TrustStorePath"><**Property name="jetty.home"
>>> default="."
>>> />/etc/keystore</Set>
>>>      <Set
>>> name="TrustStorePassword">OBF:**1vny1zlo1x8e1vnw1vn61x8g1zlu1v**n4</Set>
>>>    </New>
>>>
>>>    <New id="tlsHttpConfig"
>>> class="org.eclipse.jetty.**server.HttpConfiguration">
>>>      <Arg><Ref refid="httpConfig"/></Arg>
>>>      <Call name="addCustomizer">
>>>        <Arg><New
>>> class="org.eclipse.jetty.**server.**SecureRequestCustomizer"/></**Arg>
>>>      </Call>
>>>    </New>
>>>
>>>    <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>
>>>
>>>    <New id="proxyEngineSelector"
>>> class="org.eclipse.jetty.spdy.**server.proxy.**ProxyEngineSelector">
>>>      <Call name="putProxyEngine">
>>>        <Arg>spdy/3</Arg>
>>>        <Arg>
>>>          <Ref refid="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">7070</Arg>
>>>              </New>
>>>            </Item>
>>>          </Entry>
>>>        </Map>
>>>      </Set>
>>>    </New>
>>>
>>>    <Call name="addConnector">
>>>      <Arg>
>>>        <New
>>> class="org.eclipse.jetty.spdy.**server.proxy.**
>>> HTTPSPDYProxyServerConnector">
>>>          <Arg>
>>>            <Ref refid="Server"/>
>>>          </Arg>
>>>          <Arg>
>>>            <Ref refid="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 refid="Server"/>
>>>          </Arg>
>>>          <Arg>
>>>            <Ref refid="sslContextFactory"/>
>>>          </Arg>
>>>          <Arg>
>>>            <Ref refid="proxyEngineSelector"/>
>>>          </Arg>
>>>          <Set name="Port">8443</Set>
>>>        </New>
>>>      </Arg>
>>>    </Call>
>>>
>>> </Configure>
>>>
>>> I have not changed the sslContextFactory configuration (is straight from
>>> the distribution).
>>> Now, to try this out, I am running an HTTP server on the same machine as
>>> the SPDY proxy, listening on port 7070. The proxy is started with: java
>>> -jar start.jar. In my chrome browser, on the same machine, I go to
>>> https://localhost:8443/ . No result in the browser (keeps loading). No
>>> incoming request for the HTTP server on 7070.
>>>
>>> Jetty output at this point:
>>> $ java -jar start.jar
>>> 2013-03-11 22:21:29.421:INFO:oejs.Server:**main: jetty-9.0.0.v20130308
>>> 2013-03-11 22:21:29.535:INFO:oejssp.**HTTPSPDYProxyServerConnector:**
>>> main:
>>> Started HTTPSPDYProxyServerConnector@**63a4bb{HTTP/1.1}{0.0.0.0:8080
>>> <http://0.0.0.0:8080>}
>>>
>>> 2013-03-11 22:21:29.864:INFO:oejssp.**HTTPSPDYProxyServerConnector:**
>>> main:
>>> Started HTTPSPDYProxyServerConnector@**b0a583{SSL-npn}{0.0.0.0:8443
>>> <http://0.0.0.0:8443>}
>>>
>>> 2013-03-11 22:21:47.162:WARN:oejut.**QueuedThreadPool:qtp16655481-**26:
>>> java.lang.NoSuchMethodError:
>>> sun.security.ssl.**EngineInputRecord.decrypt(**
>>> Lsun/security/ssl/CipherBox;**Ljava/nio/ByteBuffer;)Ljava/**
>>> nio/ByteBuffer;
>>> at sun.security.ssl.**SSLEngineImpl.readRecord(**SSLEngineImpl.java:957)
>>> at sun.security.ssl.**SSLEngineImpl.readNetRecord(**
>>> SSLEngineImpl.java:888)
>>> at sun.security.ssl.**SSLEngineImpl.unwrap(**SSLEngineImpl.java:762)
>>> at javax.net.ssl.SSLEngine.**unwrap(SSLEngine.java:624)
>>> at
>>> org.eclipse.jetty.io.ssl.**SslConnection$**DecryptedEndPoint.fill(**
>>> SslConnection.java:487)
>>> at
>>> org.eclipse.jetty.spdy.server.**NextProtoNegoServerConnection.**fill(**
>>> NextProtoNegoServerConnection.**java:100)
>>> at
>>> org.eclipse.jetty.spdy.server.**NextProtoNegoServerConnection.**
>>> onFillable(**NextProtoNegoServerConnection.**java:68)
>>> at
>>> org.eclipse.jetty.io.**AbstractConnection$**ReadCallback.run(**
>>> AbstractConnection.java:240)
>>> at
>>> org.eclipse.jetty.util.thread.**QueuedThreadPool.runJob(**
>>> QueuedThreadPool.java:589)
>>> at
>>> org.eclipse.jetty.util.thread.**QueuedThreadPool$3.run(**
>>> QueuedThreadPool.java:520)
>>> at java.lang.Thread.run(Thread.**java:722)
>>> 2013-03-11 22:21:47.162:WARN:oejut.**QueuedThreadPool:qtp16655481-**25:
>>> java.lang.NoSuchMethodError:
>>> sun.security.ssl.**EngineInputRecord.decrypt(**
>>> Lsun/security/ssl/CipherBox;**Ljava/nio/ByteBuffer;)Ljava/**
>>> nio/ByteBuffer;
>>> at sun.security.ssl.**SSLEngineImpl.readRecord(**SSLEngineImpl.java:957)
>>> at sun.security.ssl.**SSLEngineImpl.readNetRecord(**
>>> SSLEngineImpl.java:888)
>>> at sun.security.ssl.**SSLEngineImpl.unwrap(**SSLEngineImpl.java:762)
>>> at javax.net.ssl.SSLEngine.**unwrap(SSLEngine.java:624)
>>> at
>>> org.eclipse.jetty.io.ssl.**SslConnection$**DecryptedEndPoint.fill(**
>>> SslConnection.java:487)
>>> at
>>> org.eclipse.jetty.spdy.server.**NextProtoNegoServerConnection.**fill(**
>>> NextProtoNegoServerConnection.**java:100)
>>> at
>>> org.eclipse.jetty.spdy.server.**NextProtoNegoServerConnection.**
>>> onFillable(**NextProtoNegoServerConnection.**java:68)
>>> at
>>> org.eclipse.jetty.io.**AbstractConnection$**ReadCallback.run(**
>>> AbstractConnection.java:240)
>>> at
>>> org.eclipse.jetty.util.thread.**QueuedThreadPool.runJob(**
>>> QueuedThreadPool.java:589)
>>> at
>>> org.eclipse.jetty.util.thread.**QueuedThreadPool$3.run(**
>>> QueuedThreadPool.java:520)
>>> at java.lang.Thread.run(Thread.**java:722)
>>>
>>>
>>> No active SPDY session when I look at
>>> chrome://net-internals/#**events&q=type:SPDY_SESSION%**20is:active
>>> This is on Ubuntu 12.04
>>> $ java -version
>>> java version "1.7.0_15"
>>> OpenJDK Runtime Environment (IcedTea7 2.3.7)
>>> (7u15-2.3.7-0ubuntu1~12.04.1)
>>> OpenJDK Server VM (build 23.7-b01, mixed mode)
>>>
>>> Any idea?
>>>
>>> Best regards,
>>> Arjan
>>>
>>>
>>>     Date: Mon, 11 Mar 2013 09:44:29 +0100
>>>     From: Thomas Becker <[email protected] <mailto:[email protected]
>>> >>
>>>     To: [email protected] 
>>> <mailto:jetty-users@eclipse.**org<[email protected]>
>>> >
>>>
>>>     Subject: Re: [jetty-users] Minimalistic SPDY proxy setup using Jetty
>>>              9.0.0
>>>     Message-ID: <[email protected]
>>>     <mailto:513D996D.7060207@**intalio.com<[email protected]>
>>> >>
>>>
>>>     Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>>>
>>>     Hi Arjan,
>>>
>>>     you've seen the example configuration for a SPDY to HTTP proxy in the
>>>     documentation?
>>>
>>>     It's described here:
>>>     http://www.eclipse.org/jetty/**documentation/current/spdy-**
>>> configuring-proxy.html#spdy-**to-http-example-config<http://www.eclipse.org/jetty/documentation/current/spdy-configuring-proxy.html#spdy-to-http-example-config>
>>>
>>>     Regarding your steps:
>>>
>>>     2. I usually put the npn file in $JETTY_HOME, but that's just my
>>>     personal preference.
>>>     3. Comment out jetty-http.xml to disable the HTTP coonector you
>>>     don't need.
>>>     4. That depends on what you want to achieve. Read the documentation:
>>>     http://www.eclipse.org/jetty/**documentation/current/spdy-**
>>> configuring-proxy.html#spdy-**example-config<http://www.eclipse.org/jetty/documentation/current/spdy-configuring-proxy.html#spdy-example-config>
>>>
>>>     and try to apply the settings according to your setup.
>>>     5. You need to include the npn jar in the classpath like so:
>>>     -Xbootclasspath/p:$JETTY_HOME/**npn-boot-1.1.2.v20130305.jar
>>>     Make sure to change the path to npn-boot if you don't have it in
>>>     $JETTY_HOME.
>>>
>>>     Cheers,
>>>     Thomas
>>>     Am 3/10/13 10:49 PM, schrieb Arjan Peddemors:
>>>      > Hi all,
>>>      > I'm kind of lost setting up a simple Jetty SPDY proxy
>>>     configuration on
>>>      > my Ubuntu 12.04 machine with OpenJDK 7. I have read the SPDY
>>>      > documentation, but can't seem to get it going.
>>>      >
>>>      > Say I have a regular (backend) web server running on the same
>>>     machine,
>>>      > listening for incoming HTTP request on port 7070. I want to setup
>>> the
>>>      > proxy as a frontend such that HTTP over SPDY/3 requests are
>>>     forwarded to
>>>      > localhost:7070. Given the new Jetty 9.0.0 distribution, what
>>> would be
>>>      > the *concrete* steps to set this up as simple as possible?
>>>      >
>>>      > I would say these are the steps, but what about step 3 and 4?
>>>      > 1- Unpack the distribution; cd into it
>>>      > 2- Download npn-boot-1.1.2.v20130305.jar from repo1.maven.org
>>>     <http://repo1.maven.org>
>>>      > <http://repo1.maven.org>, and copy to the lib directory
>>>      > 3- Change the start.ini file: exactly what changes for a
>>>     minimalistic setup?
>>>      > 4- Change the etc/jetty-spdy-proxy.xml file: exactly what changes?
>>>      > Self-signed certificate is ok.
>>>      > 5- Run it with: java -jar start.jar
>>>      >
>>>      > Thx,
>>>      > Arjan
>>>      >
>>>      >
>>>      >
>>>      > ______________________________**_________________
>>>      > jetty-users mailing list
>>>      > [email protected] 
>>> <mailto:jetty-users@eclipse.**org<[email protected]>
>>> >
>>>      > 
>>> https://dev.eclipse.org/**mailman/listinfo/jetty-users<https://dev.eclipse.org/mailman/listinfo/jetty-users>
>>>
>>>      >
>>>
>>>
>>>
>>> ______________________________**_________________
>>> jetty-users mailing list
>>> [email protected]
>>> https://dev.eclipse.org/**mailman/listinfo/jetty-users<https://dev.eclipse.org/mailman/listinfo/jetty-users>
>>>
>>>
>> ______________________________**_________________
>> jetty-users mailing list
>> [email protected]
>> https://dev.eclipse.org/**mailman/listinfo/jetty-users<https://dev.eclipse.org/mailman/listinfo/jetty-users>
>>
>
>
_______________________________________________
jetty-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/jetty-users

Reply via email to