Hi Daniel,
thanks for the help. I modified the code as you suggested, and I was able to
send and process an encrypted message.
I did not get the null pointer exception anymore (maybe because I upgraded
to 2.0.1).
Thanks everyone for your precious help! :-)))
Davide
Davide Gesino wrote:
>
> Hi Colm,
>
> thanks for the help.
>
> The server side wss4j properties file looks like this:
>
> org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
> org.apache.ws.security.crypto.merlin.keystore.type=jks
> org.apache.ws.security.crypto.merlin.keystore.password=keyStorePassword
> org.apache.ws.security.crypto.merlin.alias.password=myAliasPassword
> org.apache.ws.security.crypto.merlin.keystore.alias=myAlias
> org.apache.ws.security.crypto.merlin.file=META-INF/publicstore.jks
>
> Do I need other informations in the spring beans.xml file to tell the
> server I am using just a plain taxt password and not a CallbackHandler
> implementation?
>
> Anyway I have another problem.
> I updated the project to CXF 2.0.1 and the following code seems not to
> work anymore:
>
> URL wsdlURL = new URL("file:C:/schema/CreditReportSimple.wsdl");
>
> ReportService service = new ReportService(wsdlURL, SERVICE_NAME);
> CreditReportPortType port =
> service.getCreditReportPortType();org.apache.cxf.endpoint.Client client =
> org.apache.cxf.frontend.ClientProxy.getClient(service);
>
> When I call the last line of code now I get the following exception:
>
> Exception in thread "main" java.lang.IllegalArgumentException: not a proxy
> instance
> at java.lang.reflect.Proxy.getInvocationHandler(Unknown Source)
> at org.apache.cxf.frontend.ClientProxy.getClient(ClientProxy.java:87)
> at
> org.netbeans.j2ee.wsdl.creditreport.CreditReportPortTypeClient.main(CreditReportPortTypeClient.java:40)
>
> Any Idea??!
>
> Thanks
>
> Davide
>
>
>
> O hEigeartaigh, Colm wrote:
>>
>> Hi Davide,
>>
>>> PasswordHandler is on the classpath and implements CallbackHandler....
>>> anyway I don't know exactly what to code inside it!
>>> Is it necessary in my case ( I don't want autenthication).
>>
>> You have two options for specifying a password, either in the properties
>> file or via a custom implementation of the CallbackHandler interface.
>> You must implement one of these approaches, as wss4j needs to know the
>> password to access the private key stored in your keystore, in order to
>> perform decryption etc.
>>
>> I don't know why you're getting a ClassNotFoundException for your
>> CallbackHandler implementation, you need to provide more information...
>>
>> Have a look at the unit tests for WS-security in CXF to see how
>> configuration is done (in particular look at
>> org.apache.cxf.ws.security.wss4j.TestPwdCallback).
>>
>> Colm.
>>
>>
>> -----Original Message-----
>> From: Davide Gesino [mailto:[EMAIL PROTECTED]
>> Sent: 21 August 2007 10:57
>> To: [email protected]
>> Subject: cxf encryption
>>
>>
>> Hello,
>>
>> I would like to set up a working example of a ws client and ws server
>> exchanging encrypted messages.
>> I have tried to set up an example following both the cxf wiki and the
>> xfire
>> tutorial, but I haven/t been able to make it work properly.
>>
>> I don't want to provide authentication (at this stage), just encryption.
>>
>> in this example I have a client that calls an endpoint deployed on
>> tomcat.
>> I have created a public and private keystore (following the cxf wiki).
>>
>> ###################
>> #this is the client code:
>> ###################
>>
>> ReportService service = new ReportService(wsdlURL, SERVICE_NAME);
>> CreditReportPortType port = service.getCreditReportPortType();
>>
>> // adding encryption
>> org.apache.cxf.endpoint.Client client =
>> org.apache.cxf.frontend.ClientProxy.getClient(service);
>> org.apache.cxf.endpoint.Endpoint cxfEndpoint = client.getEndpoint();
>>
>> Map<String, String> outProps = new HashMap<String,String>();
>> outProps.put(WSHandlerConstants.ACTION, WSHandlerConstants.ENCRYPT);
>> outProps.put(WSHandlerConstants.USER, "myAlias");
>>
>> //Configuration of public key used to encrypt message goes to properties
>> file.
>> outProps.put(WSHandlerConstants.ENC_PROP_FILE,"org/codehaus/xfire/client
>> /outsecurity_enc.properties");
>>
>> WSS4JOutInterceptor wssOut = new WSS4JOutInterceptor(outProps);
>> cxfEndpoint.getOutInterceptors().add(wssOut);
>> cxfEndpoint.getOutInterceptors().add(new SAAJOutInterceptor());
>>
>> System.out.println("Invoking creditReportOperation...");
>> org.netbeans.j2ee.wsdl.creditreport.CreditReport
>> _creditReportOperation_part1 = port.creditReportOperation(new
>> CreditQuery());
>> System.out.println(_creditReportOperation_part1);
>>
>>
>> #####################################################
>> #while on the server side I have configured this endpoint and its
>> interceptors
>> #####################################################
>>
>> ...
>> <jaxws:endpoint id="italo" address="/CreditReportPortType"
>>
>> implementor="org.netbeans.j2ee.wsdl.creditreport.CreditReportPortTypeImp
>> l">
>> <jaxws:inInterceptors>
>> <bean
>> class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor" />
>> <bean
>> class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor">
>> <constructor-arg>
>> <map>
>> <entry key="action" value="Encrypt" />
>>
>> <entry key="decryptionPropFile"
>> value="META-INF/insecurity_enc.properties"
>> />
>> <entry key="passwordCallbackClass"
>> value="org.netbeans.j2ee.wsdl.creditreport.PasswordHandler" />
>> </map>
>> </constructor-arg>
>> </bean>
>> </jaxws:inInterceptors>
>> </jaxws:endpoint>
>>
>> This example was working fine before introducing the encryption.
>>
>> When I run this program I get this error on the tomcat console:
>>
>> Caused by: java.lang.ClassNotFoundException:
>> org.netbeans.j2ee.wsdl.creditreport.PasswordHandler
>>
>> PasswordHandler is on the classpath and implements CallbackHandler....
>> anyway I don't know exactly what to code inside it!
>> Is it necessary in my case ( I don't want autenthication).
>> i tried to omiss this entry but i get a different error.
>>
>> Caused by: org.apache.ws.security.WSSecurityException: WSHandler: no
>> reference in callback property
>>
>> so this entry seems to be necessary....
>>
>> Does anyone know where coud be the problem?
>> Does anyone know has a working example that could fit my case?
>>
>> Many thanks!!!!
>>
>> Davide
>>
>>
>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/cxf-encryption-tf4304218.html#a12251696
>> Sent from the cxf-user mailing list archive at Nabble.com.
>>
>> ----------------------------
>> IONA Technologies PLC (registered in Ireland)
>> Registered Number: 171387
>> Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
>>
>>
>
>
--
View this message in context:
http://www.nabble.com/cxf-encryption-tf4304218.html#a12289890
Sent from the cxf-user mailing list archive at Nabble.com.