How To Call A Proxyservice With Attached Owsm Security Policy (Osb 11.1.1.3.0)
(Doc ID 1302654.1)
Last updated on AUGUST 16, 2024
Applies to:
Oracle Service Bus - Version 11.1.1.3.0 and laterInformation in this document applies to any platform.
Goal
Is it possible to call another Proxy Service with attached OWSM Security Service Policy from a Proxy Service using the Service Callout or Route Action?
Use Case:
We created a service bus project with 2 proxy services. The first proxy service(Proxy Service A) is calling the second proxy service(Proxy Service B) with the 'Service Callout' action. On the 'Service Callout' action we are using the option 'Configure Soap Body', for the Request body and Request Header the variables $body and $header are used.
Both proxy services are protected with the OWSM security policy 'oracle/wss10_saml_token_with_message_integrity_service_policy' and require HTTPS. When the first proxy service is calling the second proxy service then the following exception is thrown:
<Error> <OSB Security> <svifwt12> <osb_server2> <[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'> <> <> <8c7c16b4d0d3586a:193ea388:12dbca44bd7:-7fff-0000000000000d92> <1296044627179> <BEA-387024> <An error ocurred during web service security outbound request processing [error-code: InternalError, message-id: null, proxy: proxy_sb/ProxyService2, target: ida_zpr_sb/IdentificationService/services/IdentificationServiceGetPeid_V1_0_proxy, operation: getPEID]
--- Error message:
java.lang.NullPointerException
at oracle.wsm.agent.handler.WSMEngineInvoker.createWsmMessageContextFromInvokerContext(WSMEngineInvoker.java:733)
at oracle.wsm.agent.handler.WSMEngineInvoker.handleRequest(WSMEngineInvoker.java:359)
at com.bea.wli.sb.security.wss.wsm.WsmOutboundHandler$1.run(WsmOutboundHandler.java:141)
at com.bea.wli.sb.security.wss.wsm.WsmOutboundHandler$1.run(WsmOutboundHandler.java:139)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
at com.bea.wli.sb.security.WLSSecurityContextService.runAs(WLSSecurityContextService.java:55)
at com.bea.wli.sb.security.wss.wsm.WsmOutboundHandler.processRequest(WsmOutboundHandler.java:138)
at com.bea.wli.sb.security.wss.WssHandlerImpl.doOutboundRequest(WssHandlerImpl.java:992)
at com.bea.wli.sb.context.BindingLayerImpl.createTransportSender(BindingLayerImpl.java:532)
at com.bea.wli.sb.pipeline.PipelineContextImpl.doDispatch(PipelineContextImpl.java:521)
at com.bea.wli.sb.pipeline.PipelineContextImpl.dispatchSync(PipelineContextImpl.java:469)
at stages.transform.runtime.WsCalloutRuntimeStep$WsCalloutDispatcher.dispatch(WsCalloutRuntimeStep.java:1391)
at stages.transform.runtime.WsCalloutRuntimeStep.processMessage(WsCalloutRuntimeStep.java:236)
We created a service bus project with 2 proxy services. The first proxy service(Proxy Service A) is calling the second proxy service(Proxy Service B) with the 'Service Callout' action. On the 'Service Callout' action we are using the option 'Configure Soap Body', for the Request body and Request Header the variables $body and $header are used.
Both proxy services are protected with the OWSM security policy 'oracle/wss10_saml_token_with_message_integrity_service_policy' and require HTTPS. When the first proxy service is calling the second proxy service then the following exception is thrown:
<Error> <OSB Security> <svifwt12> <osb_server2> <[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'> <> <> <8c7c16b4d0d3586a:193ea388:12dbca44bd7:-7fff-0000000000000d92> <1296044627179> <BEA-387024> <An error ocurred during web service security outbound request processing [error-code: InternalError, message-id: null, proxy: proxy_sb/ProxyService2, target: ida_zpr_sb/IdentificationService/services/IdentificationServiceGetPeid_V1_0_proxy, operation: getPEID]
--- Error message:
java.lang.NullPointerException
at oracle.wsm.agent.handler.WSMEngineInvoker.createWsmMessageContextFromInvokerContext(WSMEngineInvoker.java:733)
at oracle.wsm.agent.handler.WSMEngineInvoker.handleRequest(WSMEngineInvoker.java:359)
at com.bea.wli.sb.security.wss.wsm.WsmOutboundHandler$1.run(WsmOutboundHandler.java:141)
at com.bea.wli.sb.security.wss.wsm.WsmOutboundHandler$1.run(WsmOutboundHandler.java:139)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
at com.bea.wli.sb.security.WLSSecurityContextService.runAs(WLSSecurityContextService.java:55)
at com.bea.wli.sb.security.wss.wsm.WsmOutboundHandler.processRequest(WsmOutboundHandler.java:138)
at com.bea.wli.sb.security.wss.WssHandlerImpl.doOutboundRequest(WssHandlerImpl.java:992)
at com.bea.wli.sb.context.BindingLayerImpl.createTransportSender(BindingLayerImpl.java:532)
at com.bea.wli.sb.pipeline.PipelineContextImpl.doDispatch(PipelineContextImpl.java:521)
at com.bea.wli.sb.pipeline.PipelineContextImpl.dispatchSync(PipelineContextImpl.java:469)
at stages.transform.runtime.WsCalloutRuntimeStep$WsCalloutDispatcher.dispatch(WsCalloutRuntimeStep.java:1391)
at stages.transform.runtime.WsCalloutRuntimeStep.processMessage(WsCalloutRuntimeStep.java:236)
Solution
To view full details, sign in with your My Oracle Support account. |
|
Don't have a My Oracle Support account? Click to get started! |
In this Document
Goal |
Solution |