I forgot something:
More info:
http://cxf.apache.org/docs/secure-jax-rs-services.html#SecureJAX-RSServices-Configuringendpoints
(till the end of the page)

And:
<bean id="banned" class="..." factory-method="...">
    <constructor-arg value="...">
</bean>

Should be:
<bean id="banned" class="..." factory-method="...">
    <constructor-arg value="..."/>
</bean>

I just forgot a slash there. ;-)

Jana


Am Fr, 13.06.2014, 01:30 schrieb Jana Weschenfelder:
> Hello, I think I got it working...
>
> With the following configuration, it seems to work... I haven't found
> online references for it, and it looks twice configured, but it seems to
> work correctly... I have invented it right now, thanks to the Spring IoC
> documentation.
>
> <beans ...>
>
> <httpj:engine-factory id="https" bus="cxf">
>     <httpj:identifiedTLSServerParameters id="secure">
>         <httpj:tlsServerParameters>
>             <sec:keyManagers>
>                 <sec:keyStore type="..." password="..." file="..."/>
>             </sec:keyManagers>
>             <sec:trustManagers>
>                 <sec:keyStore type="..." password="..." file="..."/>
>             </sec:trustManagers>
>             <sec:cipherSuitesFilter>
>                 <sec:include>.*_EXPORT_.*</sec:include>
>                 <sec:include>.*_EXPORT1024_.*</sec:include>
>                 <sec:include>.*_WITH_DES_.*</sec:include>
>                 <sec:include>.*_WITH_NULL_.*</sec:include>
>                 <sec:exclude>.*_DH_anon_.*</sec:exclude>
>             </sec:cipherSuitesFilter>
>         </httpj:tlsServerParameters>
>     </httpj:identifiedTLSServerParameters>
>     <httpj:engine port="9001">
>         <httpj:tlsServerParametersRef id="secure"/>
>         <httpj:threadingParameters minThreads="5" maxThreads="15"/>
>         <httpj:connector>
>             <bean
> class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
>                 <property name="port" value="9001"/>
>                 <constructor-arg>
>                     <bean
> class="org.eclipse.jetty.http.ssl.SslContextFactory">
>                         <property name="keyStore" value=""/>
>                         <property name="keyStoreType" value="..."/>
>                         <property name="keyStorePassword" value="..."/>
>                         <property name="trustStore" value="..."/>
>                         <property name="trustStoreType" value="..."/>
>                         <property name="trustStorePassword" value="..."/>
>                         <property name="wantClientAuth" value="..."/>
>                         <property name="needClientAuth" value="..."/>
>                         <property name="excludeCipherSuites"
> ref="banned"/>
>                     </bean>
>                 </constructor-arg>
>             </bean>
>         </httpj:connector>
>         <httpj:handlers>
>             <bean
> class="org.eclipse.jetty.server.handler.DefaultHandler"/>
>         </httpj:handlers>
>         <httpj:sessionSupport>true</httpj:sessionSupport>
>     </httpj:engine>
> </httpj:engine-factory>
>
> <bean id="banned" class="..." factory-method="...">
>     <constructor-arg value="...">
> </bean>
>
> </beans>
>
> The configuration looks really twice now... but without the lower
> configuration, you will get an error message that a .keystore file is
> missing. And without the upper configuration, you will get the error
> message "java.lang.RuntimeException: Connector
> [email protected]:9001 for JettyServerEngine Port 9001
> does not support non-SSL connections.".
>
> If you configure it twice as above, it seems to work without any problems.
> I can connect to the service after I confirmed that I trust the web site,
> as it should be. It will need more tests to be very sure.
>
> More/other properties can be set as specified in
> http://cxf.apache.org/docs/jetty-configuration.html and
> http://wiki.eclipse.org/Jetty/Howto/Configure_SSL#Configuring_Jetty. I
> think the configuration needs to be done twice at the moment so that it
> works, on CXF side and on Jetty side (the Jetty side uses Spring IoC).
>
> Not sure if the keyPassword for keyManagers is really needed, more info
> here:
> http://stackoverflow.com/questions/10847983/what-is-the-difference-between-keystorepassword-and-keymanagerpassword-in-jetty.
>
> If the configuration above is correct, either Apache or Eclipse will have
> to update their documentation. I would think that Eclipse made a change
> sometime and Apache still doesn't know about it. As I said, I also have to
> test the configuration first. It looks very good so far, but it still can
> be wrong somewhere.
>
> I believe, instead of
> org.eclipse.jetty.server.ssl.SslSelectChannelConnector, the class
> org.eclipse.jetty.server.ssl.SslSocketConnector can be used as well...
> looked very similar and worked, too.
>
> Thanks, Jana
>
>
> Am Do, 12.06.2014, 23:45 schrieb Jana Weschenfelder:
>> Dear Ladies and Gentlemen,
>>
>> I have exactly the problem of
>> http://mail-archives.apache.org/mod_mbox/cxf-users/201403.mbox/%[email protected]%3E.
>> I don't know if there existed a solution already.
>>
>> I followed the instructions of
>> http://cxf.apache.org/docs/jetty-configuration.html and I don't have any
>> success by using org.eclipse.jetty.server.bio.SocketConnector here. I
>> receive the error message then that the port (HTTP) wouldn't be
>> configured
>> for HTTPS.
>>
>> Regarding to Eclipse, org.eclipse.jetty.server.bio.SocketConnector is
>> configured for HTTP and is not a SSLConnector, and it also doesn't
>> accept
>> any SSL Configuration if I look into the code there.
>>
>> If I read the instructions of
>> http://wiki.eclipse.org/Jetty/Howto/Configure_SSL#Configuring_Jetty,
>> org.eclipse.jetty.server.ssl.SslSelectChannelConnector should be used as
>> SSLConnector instead. But if I just replace
>> org.eclipse.jetty.server.bio.SocketConnector in the example of
>> http://cxf.apache.org/docs/jetty-configuration.html, I receive the error
>> message "java.io.FileNotFoundException: /home/user/.keystore" as
>> described
>> in
>> http://mail-archives.apache.org/mod_mbox/cxf-users/201403.mbox/%[email protected]%3E.
>>
>> I would think that something like this would be more correct, regarding
>> to
>> Eclipse:
>> <httpj:engine-factory id="https" bus="cxf">
>>     <httpj:engine port="${cdmi.net.ssl.port}">
>>         <httpj:threadingParameters minThreads="5" maxThreads="15" />
>>         <httpj:connector>
>>             <bean
>> class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
>>                 <property name = "port" value="9001"/>
>>                 <bean
>> class="org.eclipse.jetty.http.ssl.SslContextFactory">
>>                     <property name="keyStore" value="..."/>
>>                     <property name="keystoreType" value="..."/>
>>                     <property name="keyStorePassword" value="..."/>
>>                     ...
>>                     <property name="excludeCipherSuites" ref="..."/>
>>                 </bean>
>>             </bean>
>>         </httpj:connector>
>>         <httpj:handlers>
>>             <bean
>> class="org.eclipse.jetty.server.handler.DefaultHandler"/>
>>         </httpj:handlers>
>>         <httpj:sessionSupport>true</httpj:sessionSupport>
>>     </httpj:engine>
>> </httpj:engine-factory>
>>
>> But it doesn't work. It doesn't accept the part <bean
>> class="org.eclipse.jetty.http.ssl.SslContextFactory">...</bean> within
>> of
>> <bean
>> class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">...</bean>.
>> The error message is "Invalid content was found starting with element
>> 'bean'.".
>>
>> A similar configuration was found here:
>> http://www.eclipse.org/jetty/documentation/current/configuring-ssl.html#configuring-sslcontextfactory
>>
>> But I need it for httpj:engine-factory.
>>
>> What is the right way to configure the Jetty Runtime with SSLConnector?
>> Is Jetty still supported by Apache CXF? Btw, HTTP works fine, but I need
>> HTTPS because of certificates.
>>
>> Many thanks in advance!!!
>>
>> Jana
>>
>>
>
>
>


Reply via email to