2

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

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

4

1 回答 1

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')"/>

于 2014-06-03T14:14:47.613 回答