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());
This doesn't work as expected and there is exception thrown:
Failed to send RM protocol message
CreateSequence.: 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.