Wso2 如何从WS02API管理器将基本身份验证头传递到SOAP端点?
我使用的是API Manager 2.0,我设计了一个新的API,生产url是web服务的终点。在API中,我添加了“消息中介策略”,以便在请求中将json转换为soap,并在请求中将soap转换回json。在没有身份验证的情况下,这可以正常工作 当我尝试连接到使用basic进行身份验证的端点时,我无法发送身份验证标头。有可能通过吗?如果有,如何实现Wso2 如何从WS02API管理器将基本身份验证头传递到SOAP端点?,wso2,wso2esb,wso2carbon,wso2-am,Wso2,Wso2esb,Wso2carbon,Wso2 Am,我使用的是API Manager 2.0,我设计了一个新的API,生产url是web服务的终点。在API中,我添加了“消息中介策略”,以便在请求中将json转换为soap,并在请求中将soap转换回json。在没有身份验证的情况下,这可以正常工作 当我尝试连接到使用basic进行身份验证的端点时,我无法发送身份验证标头。有可能通过吗?如果有,如何实现 我已经尝试了端点安全方案,但没有成功。如果您正确配置端点安全方案,您应该在api文件的存储库/deployment/server/synapse
我已经尝试了端点安全方案,但没有成功。如果您正确配置
端点安全方案
,您应该在api文件的存储库/deployment/server/synapse configs/default/api/
目录中看到授权
属性,如下所示。仔细检查它是否在那里
<resource methods="GET" url-mapping="/menu" faultSequence="fault">
<inSequence>
<property name="api.ut.backendRequestTime"
expression="get-property('SYSTEM_TIME')"/>
<filter source="$ctx:AM_KEY_TYPE" regex="PRODUCTION">
<then>
<property name="Authorization"
expression="fn:concat('Basic ', 'YmhhdGhpeWE6cGFzc3dvcmQ=')"
scope="transport"/>
<send>
<endpoint name="admin--PizzaShackAPI_APIproductionEndpoint_1">
<http uri-template="https://localhost:9443/am/sample/pizzashack/v1/api/"/>
<property name="ENDPOINT_ADDRESS"
value="https://localhost:9443/am/sample/pizzashack/v1/api/"/>
</endpoint>
</send>
</then>
<else>
<property name="Authorization"
expression="fn:concat('Basic ', 'YmhhdGhpeWE6cGFzc3dvcmQ=')"
scope="transport"/>
<send>
<endpoint name="admin--PizzaShackAPI_APIsandboxEndpoint_1">
<http uri-template="https://localhost:9443/am/sample/pizzashack/v1/api/"/>
<property name="ENDPOINT_ADDRESS"
value="https://localhost:9443/am/sample/pizzashack/v1/api/"/>
</endpoint>
</send>
</else>
</filter>
</inSequence>
<outSequence>
<class name="org.wso2.carbon.apimgt.usage.publisher.APIMgtResponseHandler"/>
<send/>
</outSequence>
</resource>
您可以通过实现一个中介来实现这一点,该中介可以针对特定的API进行配置。在进行ESB调用之前将调用该类,在此期间,您可以检查请求并使用基本身份验证详细信息设置标头。 步骤。 1.创建一个中介项目 2.在中介类中实现日志(HandlerRequest方法) 3.将此类导出为jar文件 4.将其复制到Carbon_home/repository/components/lib中 5.为位于的特定API文件(C:\WSO2\wso2am)配置中介- 2.0.0\repository\deployment\server\synapse configs\default\api) 6.在示例的handlers部分添加配置
你试过这个吗@巴西娅:是的,没有成功。。目前我正在使用ESB来解决这个问题。。。我当前的业务案例是这样的,1.esb使用身份验证调用后端服务2。api管理器调用esb,我想让它像1一样工作。esb使用身份验证2调用后端服务。api manager调用esb(具有后端服务身份验证所需的身份验证详细信息)是否可以实现这一点?当您像上面那样设置
授权
属性时,您需要硬编码后端凭据。但据我所知,您不想硬编码它们。您需要的是通过APIM呼叫发送这些凭据。我的理解正确吗?如果是,你不必遵循上面的链接。您只需在APIM请求中发送所需的http头,