【发布时间】:2023-12-10 17:55:01
【问题描述】:
我喜欢使用通过用户名和密码进行身份验证的代理。所有通过 ESB 的消息都应该保存到数据库中,包括通过 ESB 验证的用户。 有没有办法在代理中获取用户名?例如,我知道您可以获取 message-id,但我找不到获取用户名的解决方案。
也许你可以帮助我:)
【问题讨论】:
我喜欢使用通过用户名和密码进行身份验证的代理。所有通过 ESB 的消息都应该保存到数据库中,包括通过 ESB 验证的用户。 有没有办法在代理中获取用户名?例如,我知道您可以获取 message-id,但我找不到获取用户名的解决方案。
也许你可以帮助我:)
【问题讨论】:
如果您使用 $header 访问标题信息,它就可以工作。只需获取 xPath 并像以下示例一样提取用户名:
<property xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" name="user" expression="$header/wsse:Security/wsse:UsernameToken/wsse:Username"/>
【讨论】:
一旦代理服务获得安全用户名令牌或基本身份验证... 成功消息身份验证后,即可检索用户名。可以使用名为“用户名”的属性从轴 2 消息上下文中检索用户名。您可以使用属性中介(范围是axis2)或简单的类中介。
【讨论】:
您可以使用用户名令牌(即:用户名/密码)保护代理。转到服务仪表板->安全选项,您可以找到启用用户名令牌的工具。 如果你这样保护,在你的请求中你应该发送基本的身份验证头。
【讨论】:
我认为您可以从此处的 ESB 文档中获得帮助 http://docs.wso2.org/wiki/display/ESB460/HTTP+Basic+Authentication+over+a+Proxy+Server
【讨论】: