【问题标题】:WSO2 EI - How to parametrize OAuth2 default mediatorWSO2 EI - 如何参数化 OAuth2 默认中介
【发布时间】:2020-03-26 10:17:45
【问题描述】:

我在 WSO2 EI 6.6 中使用 OAuth2 中介,我想参数化这个中介参数:用户、通行证、网址。我无法从属性中设置此值。

这是这个中介的 xml。

   <property name="ISurl" value="https://localhost:9445/services/"/>
         <property name="ISuser" value="admin"/>
         <property name="ISpass" value="admin"/>
         <oauthService remoteServiceUrl="$ctx:ISurl/" username="$ISuser" password="$ctx:ISpass"/>

显示的错误是

Caused by: org.apache.axis2.AxisFault: The system cannot infer the transport information from the $ctx:ISurl/OAuth2TokenValidationService URL.
        at org.apache.axis2.description.ClientUtils.inferOutTransport(ClientUtils.java:86)

有没有办法对这些参数进行参数化以避免在编译时进行代码自定义等选项?

【问题讨论】:

  • 看起来您正在使用自定义中介。是这样吗?
  • 不,它是标准的 oauth2 中介。这是它的 xml。
  • “参数化这个参数”你能解释一下吗?你在期待什么?
  • 我需要在运行时更改它。现在我必须在编译时设置它,如果用户/密码发生变化,我必须重新编译和部署。

标签: wso2 wso2esb wso2is wso2ei


【解决方案1】:

因为这是一个类中介器实现,它应该有表达式支持[1]。因此,您应该能够使用运行时属性来参数化这些参数。如下所示。

<class name="org.soasecurity.oauth2.scope.validator.OAuth2ScopeMediator">
            <property expression="$ctx:username" value="user"></property>
</class>

[1] - https://docs.wso2.com/display/EI660/Class+Mediator

【讨论】:

  • 您是对的,但 xml 不正确,抱歉。我已经使用默认的 OAuth2 中介 XML 和显示的错误编辑了问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多