Hi Jim,

I'm looking into some of the property handling now, though mostly around addressing settings and how those are handled by the RM code. But there have been a lot of changes in the 3.0 RM implementation, so it would be great if you could test against trunk and verify that the problem is still there.

That said, you or Aki would probably know more about how this should be handled than I do. How would you expect the properties from bindingProvider::getRequestContext() would be accessed from the RM code? I'd thought these properties would be copied into the Message when it's being initialized. If the RM code needs to access them indirectly I can add that in.

Right now I'm looking into the handling of decoupled endpoints - it looks like some problems have been introduced lately in that area.

Regards,

  - Dennis

On 05/06/2014 12:32 PM, Jim Ma wrote:
Hi Denis,

Is this already in your todo list and going to improve in the future? Or it's an issue in our ws-rm implementation at the moment we should take a look ?

Regards,
Jim



On Thu, Apr 24, 2014 at 10:18 PM, Jim Ma <[email protected] <mailto:[email protected]>> wrote:

    HI Dennis,

    I tested against 2.7.11 and 2.7.x-fixes. As Aki said, this only
    doesn't work when setting these ws-security properties in request
    context with standard jaxws api. It works well by spring xml
    configuration like what WSRMWithWSSecurityPolicyTest does now.
    With spring configuration, these properties are put in
    ClientProxyFactoryBean, and can be accessed in the new created RM
    message; while setting them in
    bindingProvider::getRequestContext() with jaxws api, only the
    message in the same context can retrieve these values.

    Regards,
    Jim


    On Thu, Apr 24, 2014 at 8:54 PM, Aki Yoshida <[email protected]
    <mailto:[email protected]>> wrote:

        Hi Dennis,
        a combined scenario of ws-rm + ws-sec works fine in general. (and
        there is a test case in systests/ws-rm that Jim mentioned).

        But I think Jim is trying to control some of its behavior by
        passing
        some properties in the client context and that won't work if those
        properties are not copied into the new client's context.

        regards, aki


        2014-04-24 13:28 GMT+02:00 Dennis Sosnoski <[email protected]
        <mailto:[email protected]>>:
        > Hi Jim,
        >
        > Which version of the code are you using? I've been working
        on combining
        > WS-RM and WS-Security in the 3.0 code. There are still some
        pieces that need
        > to be put in place (especially persisting the security
        properties so
        > messages can be retransmitted), but the basic security+rm
        operation has been
        > working for me in my tests.
        >
        > Regards,
        >
        >   - Dennis
        >
        > Dennis M. Sosnoski
        > Java Web Services Consulting
        <http://www.sosnoski.com/consult.html>
        > CXF and Web Services Security Training
        > <http://www.sosnoski.com/training.html>
        > Web Services Jump-Start <http://www.sosnoski.com/jumpstart.html>
        >
        >
        > On 04/24/2014 06:40 PM, Jim Ma wrote:
        >>
        >> Hi All,
        >> When I tried to put all the security configuration
        properties in the
        >> requestContext and call a service with both RM and security
        policy
        >> enabled(like the service in WSRMWithWSSecurityPolicyTest) :
        >>
        bp.getRequestContext().put(SecurityConstants.CALLBACK_HANDLER, new
        >> KeystorePasswordCallback());
        >>
        bp.getRequestContext().put(SecurityConstants.SIGNATURE_PROPERTIES,,
        >> getResource("/META-INF/security-client.properties"));
        >> ....
        >> This doesn't work as expected and there is exception thrown:
        >> Failed to send RM protocol message {
        >> http://schemas.xmlsoap.org/ws/2005/02/rm}CreateSequence
        <http://schemas.xmlsoap.org/ws/2005/02/rm%7DCreateSequence>.:
        >> org.apache.cxf.interceptor.Fault: Security configuration
        could not be
        >> detected. Potential cause: Make sure jaxws:client element
        with name
        >> attribute value matching endpoint port is defined as well as a
        >> ws-security.signature.properties element within it.
        >>
        >> After I investigated the code, I saw all these ws-scurity
        configuration
        >> properties are not copied into the new created message by
        RMClient which
        >> initialized by RM interceptor.
        >> That's the root cause for this failure.
        >> I went back to look at jaxws spec about BindingProvider's
        requestContext
        >> and it's scope. There isn't clue and detail to say if these
        properties
        >> should be copied into the new created message like RM
        message from the
        >> message which send out the real payload with user's setting
        though
        >> requestContext.
        >> Do you think we should copy them ? or What can do to
        support this easily?
        >> Thanks in advance.
        >>
        >> Jim
        >>
        >




Reply via email to