我有apimanger v1.5.0。它通过access_token授权请求并转发到后端。 后端需要最终用户名来处理请求。我不希望添加JWT-headers请求,因为那是不安全的。
如果在repository/deployment/server/synapse-configs/default/api/admin--common_v1.0.1.xml
部分中添加了一些数据,例如<outSequence><header>
,Apimanager可以添加可选的标头来请求。但我不知道具有最终用户名的变量名称。
有人知道吗?
答案 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')"/>