Project: talendesb
Issue TESB-10617: Registry oneway communication failed when Username Token policy to service and SAML Token policy to oneway operation
Runtime build: 5.4.0.M2-SNAPSHOT_BPM_1052 Studio build: V5.4.0NB_r105967 Username Token apply to Service(including two operations: doRequestResponse and doOneway) SAML Token apply to Oneway operation Oneway communication throws exception: {noformat} karaf@trun> Exception in component tESBConsumer_1 org.apache.cxf.interceptor.Fault: No encryption crypto object found. at org.apache.cxf.ws.security.wss4j.policyhandlers.AsymmetricBindingHandler.doSignBeforeEncrypt(AsymmetricBindingHandler.java:195) at org.apache.cxf.ws.security.wss4j.policyhandlers.AsymmetricBindingHandler.handleBinding(AsymmetricBindingHandler.java:98) at org.apache.cxf.ws.security.wss4j.PolicyBasedWSS4JOutInterceptor$PolicyBasedWSS4JOutInterceptorInternal.handleMessage(PolicyBasedWSS4JOutInterceptor.j ava:169) at org.apache.cxf.ws.security.wss4j.PolicyBasedWSS4JOutInterceptor$PolicyBasedWSS4JOutInterceptorInternal.handleMessage(PolicyBasedWSS4JOutInterceptor.j ava:90) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271) at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:541) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:474) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:377) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:330) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:350) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:336) at org.talend.esb.job.controller.internal.RuntimeESBConsumer.sendDocument(RuntimeESBConsumer.java:319) at org.talend.esb.job.controller.internal.RuntimeESBConsumer.invoke(RuntimeESBConsumer.java:304) at mfshen20130731.registryconsumerdooneway_0_6.RegistryConsumerDoOneway.tFixedFlowInput_1Process(RegistryConsumerDoOneway.java:1654) at mfshen20130731.registryconsumerdooneway_0_6.RegistryConsumerDoOneway.runJobInTOS(RegistryConsumerDoOneway.java:2217) at org.talend.esb.job.controller.internal.SimpleJobTask$JobRunner.run(SimpleJobTask.java:80) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at org.talend.esb.job.controller.internal.SimpleJobTask.run(SimpleJobTask.java:62) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:722) Caused by: org.apache.cxf.ws.policy.PolicyException: No encryption crypto object found. at org.apache.cxf.ws.security.wss4j.policyhandlers.AbstractBindingBuilder.policyNotAsserted(AbstractBindingBuilder.java:315) at org.apache.cxf.ws.security.wss4j.policyhandlers.AbstractBindingBuilder.setEncryptionUser(AbstractBindingBuilder.java:1630) at org.apache.cxf.ws.security.wss4j.policyhandlers.AsymmetricBindingHandler.doEncryption(AsymmetricBindingHandler.java:420) at org.apache.cxf.ws.security.wss4j.policyhandlers.AsymmetricBindingHandler.doSignBeforeEncrypt(AsymmetricBindingHandler.java:190) ... 22 more {noformat}	BTW, oneway communication worked well when below case: SAML Token apply to Service(including two operations: doRequestResponse and doOneway) Username Token apply to Oneway operation.
Story points: 2