Добавить заголовок с именем пользователя в запрос к бэкенду в wso2 apimanager

У меня апимангер v1.5.0. Он авторизует запрос по access_token и перенаправляет на серверную часть. Серверной части требуется имя конечного пользователя для обработки запроса. Я не хочу добавлять JWT-заголовки в запрос, потому что это небезопасно.

Apimanager может добавить в запрос необязательные заголовки, если добавить в файл repository/deployment/server/synapse-configs/default/api/admin--common_v1.0.1.xml в секцию <outSequence><header> какие-то данные, например uri.var.accessToken. Но я не знаю имя переменной с именем конечного пользователя. Кто-нибудь знает?


person mr_tron    schedule 20.05.2014    source источник


Ответы (1)


Имя переменной: 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: [email protected]
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')"/>

person mr_tron    schedule 03.06.2014
comment
Уточнение: как работа ключа X-Test-Username сверху отражает результирующий HTTP-заголовок ниже? Это жестко закодировано в имени пользователя? Другими словами, можно ли настроить имя пользователя как имя поля в результирующем заголовке HTTP? - person PaoloC; 07.09.2018