I can get Jetty 9.3.3 to work over SSL with these four files, but I
cannot figure out a way to
put them into one file (required by fuseki) to get SSL working with fuseki:

jetty.xml

<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN"
"http://www.eclipse.org/jetty/configure_9_3.dtd";>

<Configure id="Server" class="org.eclipse.jetty.server.Server">

    <New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
      <Set name="secureScheme"><Property
name="jetty.httpConfig.secureScheme" default="https" /></Set>
      <Set name="securePort"><Property
name="jetty.httpConfig.securePort" deprecated="jetty.secure.port"
default="8443" /></Set>
      <Set name="outputBufferSize"><Property
name="jetty.httpConfig.outputBufferSize"
deprecated="jetty.output.buffer.size" default="32768" /></Set>
      <Set name="outputAggregationSize"><Property
name="jetty.httpConfig.outputAggregationSize"
deprecated="jetty.output.aggregation.size" default="8192" /></Set>
      <Set name="requestHeaderSize"><Property
name="jetty.httpConfig.requestHeaderSize"
deprecated="jetty.request.header.size" default="8192" /></Set>
      <Set name="responseHeaderSize"><Property
name="jetty.httpConfig.responseHeaderSize"
deprecated="jetty.response.header.size" default="8192" /></Set>
      <Set name="sendServerVersion"><Property
name="jetty.httpConfig.sendServerVersion"
deprecated="jetty.send.server.version" default="true" /></Set>
      <Set name="sendDateHeader"><Property
name="jetty.httpConfig.sendDateHeader"
deprecated="jetty.send.date.header" default="false" /></Set>
      <Set name="headerCacheSize"><Property
name="jetty.httpConfig.headerCacheSize" default="512" /></Set>
      <Set name="delayDispatchUntilContent"><Property
name="jetty.httpConfig.delayDispatchUntilContent"
deprecated="jetty.delayDispatchUntilContent" default="true"/></Set>
    </New>

</Configure>

jetty-http.xml

<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN"
"http://www.eclipse.org/jetty/configure_9_3.dtd";>

  <Call name="addConnector">
    <Arg>
      <New id="httpConnector" class="org.eclipse.jetty.server.ServerConnector">
        <Arg name="server"><Ref refid="Server" /></Arg>
        <Arg name="acceptors" type="int"><Property
name="jetty.http.acceptors" deprecated="http.acceptors"
default="-1"/></Arg>
        <Arg name="selectors" type="int"><Property
name="jetty.http.selectors" deprecated="http.selectors"
default="-1"/></Arg>
        <Arg name="factories">
          <Array type="org.eclipse.jetty.server.ConnectionFactory">
            <!-- uncomment to support proxy protocol
            <Item>
              <New class="org.eclipse.jetty.server.ProxyConnectionFactory"/>
            </Item>-->
            <Item>
              <New class="org.eclipse.jetty.server.HttpConnectionFactory">
                <Arg name="config"><Ref refid="httpConfig" /></Arg>
              </New>
            </Item>
          </Array>
        </Arg>
        <Set name="host"><Property name="jetty.http.host"
deprecated="jetty.host" /></Set>
        <Set name="port"><Property name="jetty.http.port"
deprecated="jetty.port" default="8080" /></Set>
        <Set name="idleTimeout"><Property
name="jetty.http.idleTimeout" deprecated="http.timeout"
default="30000"/></Set>
        <Set name="soLingerTime"><Property
name="jetty.http.soLingerTime" deprecated="http.soLingerTime"
default="-1"/></Set>
        <Set name="acceptorPriorityDelta"><Property
name="jetty.http.acceptorPriorityDelta"
deprecated="http.acceptorPriorityDelta" default="0"/></Set>
        <Set name="acceptQueueSize"><Property
name="jetty.http.acceptQueueSize" deprecated="http.acceptQueueSize"
default="0"/></Set>
      </New>
    </Arg>
  </Call>

</Configure>


jetty-https.xml

<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN"
"http://www.eclipse.org/jetty/configure_9_3.dtd";>

<Configure id="sslConnector" class="org.eclipse.jetty.server.ServerConnector">

  <Call name="addIfAbsentConnectionFactory">
    <Arg>
      <New class="org.eclipse.jetty.server.SslConnectionFactory">
        <Arg name="next">http/1.1</Arg>
        <Arg name="sslContextFactory"><Ref refid="sslContextFactory"/></Arg>
      </New>
    </Arg>
  </Call>

  <Call name="addConnectionFactory">
    <Arg>
      <New class="org.eclipse.jetty.server.HttpConnectionFactory">
        <Arg name="config"><Ref refid="sslHttpConfig" /></Arg>
      </New>
    </Arg>
  </Call>

</Configure>

jetty-ssl-context.xml

<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN"
"http://www.eclipse.org/jetty/configure_9_3.dtd";>

<Configure id="sslContextFactory"
class="org.eclipse.jetty.util.ssl.SslContextFactory">

  <Set name="KeyStorePath"><Property name="jetty.base" default="."
/>/<Property name="jetty.sslContext.keyStorePath"
deprecated="jetty.keystore" default="etc/keystore"/></Set>
  <Set name="KeyStorePassword"><Property
name="jetty.sslContext.keyStorePassword"
deprecated="jetty.keystore.password" />MyPassword</Set>
  <Set name="KeyStoreType"><Property
name="jetty.sslContext.keyStoreType" default="JKS"/></Set>
  <Set name="KeyStoreProvider"><Property
name="jetty.sslContext.keyStoreProvider"/></Set>
  <Set name="KeyManagerPassword"><Property
name="jetty.sslContext.keyManagerPassword"
deprecated="jetty.keymanager.password" />MyPassword</Set>
  <Set name="TrustStorePath"><Property name="jetty.base" default="."
/>/<Property name="jetty.sslContext.trustStorePath"
deprecated="jetty.truststore" default="etc/keystore"/></Set>
  <Set name="TrustStorePassword"><Property
name="jetty.sslContext.trustStorePassword"
deprecated="jetty.truststore.password" />MyPassword</Set>
  <Set name="TrustStoreType"><Property
name="jetty.sslContext.trustStoreType" default="JKS"/></Set>
  <Set name="TrustStoreProvider"><Property
name="jetty.sslContext.trustStoreProvider"/></Set>
  <Set name="EndpointIdentificationAlgorithm"></Set>
  <Set name="NeedClientAuth"><Property
name="jetty.sslContext.needClientAuth"
deprecated="jetty.ssl.needClientAuth" default="false"/></Set>
  <Set name="WantClientAuth"><Property
name="jetty.sslContext.wantClientAuth"
deprecated="jetty.ssl.wantClientAuth" default="false"/></Set>
  <Set name="ExcludeCipherSuites">
   <Array type="String">
    <Item>SSL_RSA_WITH_DES_CBC_SHA</Item>
    <Item>SSL_DHE_RSA_WITH_DES_CBC_SHA</Item>
    <Item>SSL_DHE_DSS_WITH_DES_CBC_SHA</Item>
    <Item>SSL_RSA_EXPORT_WITH_RC4_40_MD5</Item>
    <Item>SSL_RSA_EXPORT_WITH_DES40_CBC_SHA</Item>
    <Item>SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA</Item>
    <Item>SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA</Item>
   </Array>
  </Set>
  <Set name="useCipherSuitesOrder"><Property
name="jetty.sslContext.useCipherSuitesOrder" default="true"/></Set>
</Configure>

================

On Wed, Sep 2, 2015 at 8:18 AM, Andy Seaborne <a...@apache.org> wrote:
> Hi Jason,
>
> I have made some progress with your config.
>
> 1/ I switched the development code to 9.3.3 so we have one target and
> because I got that version to work with your config
>
> 9.3.3. was release 27/Aug/2015.
>
> Don't know if your working from the source or not so I did a development
> build of Fuseki2 with 9.3.3.
>
> https://repository.apache.org/content/repositories/snapshots/org/apache/jena/apache-jena-fuseki/2.3.1-SNAPSHOT/
>
> NB There are 2 builds for today - latest with Jetty 9.3.3 is
>
>   20150902.121407-19
>
> 2/ Fix for your config file below.
>    Needs some details from jetty.xml copied into it.
>
>         Andy
>
> On 01/09/15 20:36, Jason Levitt wrote:
>>
>> Back to square one.
>>
>> This Jetty config file works fine with Jetty 9:
>
>
> Which jetty version?  I'm seeing differences between 9.1.1 and 9.3.3
>
> With 9.3.2 I get a different error, more useful error (yes, I was using
> 9.3.2 at that point)
>
> [2015-09-02 12:24:37] Server     ERROR SPARQLServer: Failed to configure
> server: null
> java.lang.reflect.InvocationTargetException
> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> java.lang.reflect.Constructor.newInstance(Constructor.java:422)
> org.eclipse.jetty.util.TypeUtil.construct(TypeUtil.java:627)
> org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.newObj(XmlConfiguration.java:782)
>
> which looks to be caused by:
>
>>      <New class="org.eclipse.jetty.server.HttpConnectionFactory">
>>         <Arg name="config"><Ref refid="httpConfig" /></Arg>
>>      </New>
>
> and httpConfig is not defined.  (I debug traced the Jetty code).
>
> It says higher up:
>
>  <!-- HttpConnectionFactory instance using the common httpConfig  -->
>  <!-- instance defined in jetty.xml
>
>
> I copied the block from jetty.xml 9.3.3 into you configuration:
> <New id="httpConfig"
> </New>
>
> Full copy below.
>
> This is for 9.3.3 only - I tried the same approach with 9.1.1 and it didn't
> work.  Maybe my user error, maybe because your config makes a 9.3 specific
> call.  Rather than worry about that, I switched the development code base to
> 9.3.3.
>
> Hey presto - server runs for me.  Confirmed it is using the config by
> changing the port but that's all the testing I have time for ATM. (Looking
> for a job (= employment) can be quite time consuming!)
>
>         Andy
>
>
> ------------------------------------------------------------
> Copy of new section, reformatted for email :-| , inserted before <Call>
>
> <Configure id="Server" class="org.eclipse.jetty.server.Server">
>   <New
>     ....
>   </New>
>
>   <Call name="addConnector">
>    </Call>
>
>
> </Configure>
>
> --------- Full insert
>
>
> <New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
>   <Set name="secureScheme">
>     <Property name="jetty.httpConfig.secureScheme"
>               default="https" />
>   </Set>
>   <Set name="securePort">
>     <Property name="jetty.httpConfig.securePort"
>               deprecated="jetty.secure.port"
>               default="8443" />
>   </Set>
>   <Set name="outputBufferSize">
>     <Property name="jetty.httpConfig.outputBufferSize"
>               deprecated="jetty.output.buffer.size"
>               default="32768" />
>   </Set>
>   <Set name="outputAggregationSize">
>     <Property name="jetty.httpConfig.outputAggregationSize"
>               deprecated="jetty.output.aggregation.size"
>               default="8192" />
>   </Set>
>   <Set name="requestHeaderSize">
>     <Property name="jetty.httpConfig.requestHeaderSize"
>               deprecated="jetty.request.header.size"
>               default="8192" />
>   </Set>
>   <Set name="responseHeaderSize">
>     <Property name="jetty.httpConfig.responseHeaderSize"
>               deprecated="jetty.response.header.size"
>               default="8192" />
>   </Set>
>   <Set name="sendServerVersion">
>     <Property name="jetty.httpConfig.sendServerVersion"
>               deprecated="jetty.send.server.version"
>               default="true" />
>   </Set>
>   <Set name="sendDateHeader">
>     <Property name="jetty.httpConfig.sendDateHeader"
>               deprecated="jetty.send.date.header"
>               default="false" />
>   </Set>
>   <Set name="headerCacheSize">
>     <Property name="jetty.httpConfig.headerCacheSize"
>               default="512" />
>   </Set>
>   <Set name="delayDispatchUntilContent">
>     <Property name="jetty.httpConfig.delayDispatchUntilContent"
>               deprecated="jetty.delayDispatchUntilContent"
>               default="true"/>
>   </Set>
>   <Set name="maxErrorDispatches">
>     <Property name="jetty.httpConfig.maxErrorDispatches"
>               default="10"/>
>   </Set>
>   <!-- Uncomment to enable handling of X-Forwarded- style headers
>        <Call name="addCustomizer">
>          <Arg><New
> class="org.eclipse.jetty.server.ForwardedRequestCustomizer"/></Arg>
>   </Call>
>   -->
> </New>
>

Reply via email to