To my knowledge, there isn't, no, and this is a very compelling use case.

I'd suggest doing this programatically through a collection of interceptors, one which places the client's public key on the Exchange after the inbound interceptor has consumed the message, and another that programatically configures the OutInterceptor on the outbound response interceptor chain, using the key you've placed on the exchange.

The wrinkle in all of this is that CXF uses WSS4J, which IMO is pretty limited in its ability to configure keys. Worse, CXF uses the WSS4J Handler architecture, which makes invalid assumptions about keys are retrieved.

So I guess I'm saying I don't know how feasible my proposal is, but it's the avenue of investigation I'd start with, if I were to do what you are trying to do. (And I've considered it as a possibility)

Hope that helps more than it discourages you!
-Fred

On Dec 15, 2007, at 11:57 AM, Olivier OTTAVI wrote:

Hi,

 I have a server with WS-Security enabled on WSS4J, in order to handle
signature and encryption of the soap message.

The client encrypt the soap message with server public key, and sign it with its private key. The server validate signature with public client key
and decrypt it with its private key.

Then the response is sent to the client - signed by the private server key
and encrypted with the client public key.

 It works well, but the only thing that bother me, is that the server
encryption has to be done by setting up the "encryption user" property with the client name. Since this name is changing for each request, I don't know where to put this information. I would like to have the public key of the client that signed the request directly used to encrypt the response, is
there a simple way to achieve this behavior ?

Thanks

Reply via email to