Good to hear.  About the Java API issue, feel free to type up a JIRA report
on it.  Attach this thread to it:
http://www.nabble.com/CXF-ssl-sample-using-CXF-APIs-tt18570914.html

Glen


Arul Dhesiaseelan wrote:
> 
> Glen,
> 
> Thanks for all your help. I appreciate your inputs.
> 
> I did a quick test using the spring-configs and embedded Jetty server 
> (JaxWsServerFactoryBean). It worked like a charm. CXF uses Jetty SSL 
> connector to support SSL (CXFJettySslSocketConnector).
> 
> My only gut feeling says if embedded Jetty supports SSL using 
> spring-config, it should support Java APIs as well.
> 
> -Arul
> 
> Glen Mazza wrote:
>> Actually, we may not be able to support SSL with embedded Jetty
>> anyway--look
>> at this thread, as well as a J2SE 6.0 based alternative solution:
>>
>> http://www.nabble.com/Help-needed-for-SSL-and-Basic-authentication-tt17761832.html
>>
>> HTH,
>> Glen
>>
>>
>> Glen Mazza wrote:
>>   
>>> While I hope others can help you with your problem, if you want to use
>>> SSL, I suspect you'd be better off with a standalone container[1]
>>> anyway--WAR file, web.xml, all that good stuff--this way at least you
>>> know
>>> what you're coding on top of.  I just haven't researched SSL over
>>> embedded
>>> Jetty containers.
>>>
>>> Glen
>>>
>>> [1] http://www.jroller.com/gmazza/entry/setting_up_ssl_and_basic
>>>
>>>
>>> Arul Dhesiaseelan wrote:
>>>     
>>>> Can someone look into this pls?
>>>>
>>>> I am close to making this work. But, figuring out what could be wrong
>>>> is 
>>>> still a puzzle to me.
>>>>
>>>> Thank you,
>>>> Arul
>>>>
>>>> Arul Dhesiaseelan wrote:
>>>>       
>>>>> Hello,
>>>>>
>>>>> I did some debugging using CXF 2.1.1 sources. I see the problem in 
>>>>> line 201 in JettyHTTPServerEngineFactory.createJettyHTTPServerEngine() 
>>>>> where it makes a call to ref.finalizeConfig().
>>>>>
>>>>> In JettyHTTPServerEngine.finalizeConfig(), it calls method 
>>>>> retrieveListenerFactory(). In this method the "tlsServerParameters" is 
>>>>> null so the protocol is defaulted to "http" and finally throws the 
>>>>> exception.
>>>>>
>>>>> This tells me that I am not correctly setting the TLSServerParameters 
>>>>> to the JettyHTTPServerEngine in my code in the correct order. Or, I am 
>>>>> not creating the JettyHTTPServerEngine instance properly.
>>>>>
>>>>> Does some one help me if I am missing something here?
>>>>>
>>>>> Appreciate your help.
>>>>>
>>>>> -Arul
>>>>>
>>>>> Arul Dhesiaseelan wrote:
>>>>>         
>>>>>> Hello,
>>>>>>
>>>>>> I was trying to use CXF APIs to configure SSL on the service. But, I 
>>>>>> am getting an illegal state exception: Port 9001 is configured with 
>>>>>> wrong protocol "http" for "https://localhost:9001/hello";
>>>>>>
>>>>>>    JaxWsServerFactoryBean sf = new JaxWsServerFactoryBean();
>>>>>>    sf.setServiceClass(HelloWorld.class);      
>>>>>> sf.getServiceFactory().setWrapped(true);
>>>>>>
>>>>>>    QName name = new QName("http://test.com";, "ws", "");
>>>>>>    sf.setServiceName(name);
>>>>>>    sf.setAddress("https://localhost:9001/hello";);
>>>>>>
>>>>>>    HelloWorld helloService = new HelloWorldImpl();
>>>>>>
>>>>>>    sf.getServiceFactory().setInvoker(new BeanInvoker(helloService));
>>>>>>    //org.apache.cxf.endpoint.Server server = sf.create();
>>>>>>
>>>>>>    JettyHTTPServerEngineFactory factory = 
>>>>>> sf.getBus().getExtension(JettyHTTPServerEngineFactory.class);
>>>>>>
>>>>>>    TLSServerParameters tlsParams = new TLSServerParameters();
>>>>>>    JettyHTTPServerEngine engine = null;
>>>>>>    try {
>>>>>>      engine = factory.createJettyHTTPServerEngine(9001, "https");
>>>>>>      KeyStore keyStore = KeyStore.getInstance("JKS");
>>>>>>      String trustpass = "password";
>>>>>>      File truststore = new 
>>>>>> File("C:\\apache-cxf-2.1.1\\samples\\wsdl_first_https\\certs\\cherry.jks");
>>>>>>  
>>>>>>
>>>>>>      keyStore.load(new FileInputStream(truststore), 
>>>>>> trustpass.toCharArray());
>>>>>>      KeyManagerFactory keyFactory = 
>>>>>> KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
>>>>>>      keyFactory.init(keyStore, trustpass.toCharArray());
>>>>>>      KeyManager[] km = keyFactory.getKeyManagers();
>>>>>>      tlsParams.setKeyManagers(km);
>>>>>>
>>>>>>      truststore = new 
>>>>>> File("C:\\apache-cxf-2.1.1\\samples\\wsdl_first_https\\certs\\truststore.jks");
>>>>>>  
>>>>>>
>>>>>>      keyStore.load(new FileInputStream(truststore), 
>>>>>> trustpass.toCharArray());
>>>>>>      TrustManagerFactory trustFactory = 
>>>>>> TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
>>>>>>  
>>>>>>
>>>>>>      trustFactory.init(keyStore);
>>>>>>      TrustManager[] tm = trustFactory.getTrustManagers();
>>>>>>      tlsParams.setTrustManagers(tm);
>>>>>>      FiltersType filter = new FiltersType();
>>>>>>      filter.getInclude().add(".*_EXPORT_.*");
>>>>>>      filter.getInclude().add(".*_EXPORT1024_.*");
>>>>>>      filter.getInclude().add(".*_WITH_DES_.*");
>>>>>>      filter.getInclude().add(".*_WITH_NULL_.*");
>>>>>>      filter.getExclude().add(".*_DH_anon_.*");
>>>>>>      tlsParams.setCipherSuitesFilter(filter);
>>>>>>      ClientAuthentication ca = new ClientAuthentication();
>>>>>>      ca.setRequired(true);
>>>>>>      ca.setWant(true);
>>>>>>      tlsParams.setClientAuthentication(ca);
>>>>>>      tlsParams.setSecureSocketProtocol("SSL");
>>>>>>      if (engine != null) {
>>>>>>        engine.setTlsServerParameters(tlsParams);
>>>>>>      }
>>>>>>    } catch (KeyStoreException kse) {
>>>>>>    } catch (NoSuchAlgorithmException nsa) {
>>>>>>    } catch (FileNotFoundException fnfe) {
>>>>>>    } catch (UnrecoverableKeyException uke) {
>>>>>>    } catch (CertificateException ce) {
>>>>>>    } catch (GeneralSecurityException gse) {
>>>>>>    } catch (IOException ioe) {
>>>>>>    }
>>>>>>
>>>>>>    List<JettyHTTPServerEngine> engines = new 
>>>>>> ArrayList<JettyHTTPServerEngine>();
>>>>>>    if (engine != null)
>>>>>>      engines.add(engine);
>>>>>>    factory.setEnginesList(engines);
>>>>>>    org.apache.cxf.endpoint.Server server = sf.create();
>>>>>>    ((JettyHTTPServerEngine) ((JettyHTTPDestination) 
>>>>>> server.getDestination()).getEngine()).setJettyHTTPServerEngineFactory(factory);
>>>>>>  
>>>>>>
>>>>>>
>>>>>>    String endpoint = 
>>>>>> server.getEndpoint().getEndpointInfo().getAddress();
>>>>>>    System.out.println("Server started at " + endpoint);
>>>>>>
>>>>>>
>>>>>> But when I start the service, I get the below error:
>>>>>>
>>>>>> Jul 21, 2008 9:15:10 AM 
>>>>>> org.apache.cxf.service.factory.ReflectionServiceFactoryBean 
>>>>>> buildServiceFromClass
>>>>>> INFO: Creating Service {http://test.com}ws from class 
>>>>>> com.test.cxf.HelloWorld
>>>>>> Exception in thread "main" java.lang.IllegalStateException: Port 9001 
>>>>>> is configured with wrong protocol "http" for 
>>>>>> "https://localhost:9001/hello";
>>>>>>    at 
>>>>>> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.retrieveEngine(JettyHTTPDestination.java:115)
>>>>>>  
>>>>>>
>>>>>>    at 
>>>>>> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.finalizeConfig(JettyHTTPDestination.java:134)
>>>>>>  
>>>>>>
>>>>>>    at 
>>>>>> org.apache.cxf.transport.http_jetty.JettyHTTPTransportFactory.createDestination(JettyHTTPTransportFactory.java:123)
>>>>>>  
>>>>>>
>>>>>>    at 
>>>>>> org.apache.cxf.transport.http_jetty.JettyHTTPTransportFactory.getDestination(JettyHTTPTransportFactory.java:103)
>>>>>>  
>>>>>>
>>>>>>    at 
>>>>>> org.apache.cxf.endpoint.ServerImpl.initDestination(ServerImpl.java:90)
>>>>>>    at org.apache.cxf.endpoint.ServerImpl.<init>(ServerImpl.java:69)
>>>>>>    at 
>>>>>> org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:115)
>>>>>>  
>>>>>>
>>>>>>    at 
>>>>>> org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:164)
>>>>>>  
>>>>>>
>>>>>>    at com.test.cxf.Server.main(Server.java:104)
>>>>>>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>>>    at 
>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>>>  
>>>>>>
>>>>>>    at 
>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>>>  
>>>>>>
>>>>>>    at java.lang.reflect.Method.invoke(Method.java:585)
>>>>>>    at 
>>>>>> com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
>>>>>>
>>>>>>
>>>>>> Any thoughts on this issue?
>>>>>>
>>>>>> Thank you,
>>>>>> -Arul
>>>>>>
>>>>>>
>>>>>> ______________________________
>>>>>>           
>>>>
>>>>       
>>>     
>>
>>   
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/CXF-ssl-sample-using-CXF-APIs-tp18570914p18594995.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to