我想为 WS-Trust 实现一个出站网关:
- 拦截所有出站 SOAP 消息
- 向 STS 发送 RST。
- 在调用外部服务之前,在消息的 SOAP 标头中包含响应 SAML 令牌。
我发现 WSO2 ESB 可以充当这样的网关。我想我可以实现一个 Java 类(使用 Apache Axis)来执行底层步骤(1-3)。然后我会让 ESB 调用这个 Java 类。你认为有可能吗?任何样本都会非常有帮助。
除了 WSO2 ESB,你还有什么建议吗?
非常感谢
为了回答我自己的问题,我使用 Apache Synapse 作为 ESB 网关来拦截出站 SOAP 消息。特别是,我使用 Synapse [1] 的 Class Mediator 来拦截 SOAP 消息。接收到 SOAP 消息后,中介使用 Rampart [2] 中的 STSClient 将 RST 发送到 STS 服务,并将响应令牌包含在 SOAP 标头中。Rampart 应该在 Synapse 环境中运行良好。
[1] http://synapse.apache.org/userguide/samples/sample380.html
[2] https://axis.apache.org/axis2/java/rampart/apidocs/org/apache/rahas/client/STSClient.html