【问题标题】:WSO2 ESB Get UsernameWSO2 ESB 获取用户名
【发布时间】:2023-12-10 17:55:01
【问题描述】:

我喜欢使用通过用户名和密码进行身份验证的代理。所有通过 ESB 的消息都应该保存到数据库中,包括通过 ESB 验证的用户。 有没有办法在代理中获取用户名?例如,我知道您可以获取 message-id,但我找不到获取用户名的解决方案。

也许你可以帮助我:)

【问题讨论】:

    标签: security wso2 esb


    【解决方案1】:

    如果您使用 $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】:

      一旦代理服务获得安全用户名令牌或基本身份验证... 成功消息身份验证后,即可检索用户名。可以使用名为“用户名”的属性从轴 2 消息上下文中检索用户名。您可以使用属性中介(范围是axis2)或简单的类中介。

      【讨论】:

      • 这走向了正确的方向,但我仍然无法获得这个属性。我不知道表达式应该是什么样子: 你能帮我解决这个问题吗?
      【解决方案3】:

      您可以使用用户名令牌(即:用户名/密码)保护代理。转到服务仪表板->安全选项,您可以找到启用用户名令牌的工具。 如果你这样保护,在你的请求中你应该发送基本的身份验证头。

      【讨论】:

      • 抱歉,答案不符合问题。
      【解决方案4】:

      我认为您可以从此处的 ESB 文档中获得帮助 http://docs.wso2.org/wiki/display/ESB460/HTTP+Basic+Authentication+over+a+Proxy+Server

      【讨论】:

      • 抱歉,答案不符合问题。