使用用户名添加标头到wso2 api manager中的后端请求

时间:2014-05-20 09:24:35

标签: wso2 wso2-am

我有apimanger v1.5.0。它通过access_token授权请求并转发到后端。 后端需要最终用户名来处理请求。我不希望添加JWT-headers请求,因为那是不安全的。

如果在repository/deployment/server/synapse-configs/default/api/admin--common_v1.0.1.xml部分中添加了一些数据,例如<outSequence><header>,Apimanager可以添加可选的标头来请求。但我不知道具有最终用户名的变量名称。 有人知道吗?

1 个答案:

答案 0 :(得分:2)

变量名称为END_USER_NAME。

使用示例:

<inSequence>
        <property name="POST_TO_URI" value="true" scope="axis2"/>
        <property name="X-Test-Username" scope="transport" expression="get-property('END_USER_NAME')"></property>
        <filter source="$ctx:AM_KEY_TYPE" regex="PRODUCTION">

导致http标头:

GET http://backend.server:8080/sm/api/v1/common/user/example?access_token=4d758b64d5de15029c467dcd6feb354& HTTP/1.1
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Username: rudesu@example.com
Referer: https://example.com/src-jssip-osdk-test/
Accept-Encoding: gzip,deflate,sdch

此方法无法在APIM 1.7.0中工作

在1.7.0工作中: <property name="X-Test-Username" scope="transport" expression="get-property('END_USER_NAME')"/>