#header #wso2 #wso2-am #wso2carbon #mediator
#заголовок #wso2-api-manager #wso2 #посредник
Вопрос:
У меня есть Rest API в wso2 apim 2.6.0, который имеет ввод и вывод json.И имеет ресурс Get. Я хочу добавить к нему параметры заголовка. итак, мне нужен посредник потока.
Я использую этот посредник, но он не работает.
<?xml version="1.0" encoding="UTF-8"?>
<sequence name="newUser" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
<header name="caller-token" scope="transport" value="234"/>
<header name="Content-Type" scope="transport" value="application/json"/>
<header name="Authorization" scope="transport" value="Bearer dd"/>
<header name="Access-Control-Allow-Origin" scope="transport" value="https://onlineapi.agah.com/api/v1/"/>
<property name="messageType" scope="axis2" type="STRING" value="application/json"/>
<log level="full"/>
</sequence>
после вызова его в хранилище я получаю эту ошибку:
(400) Ошибка: не найдена
Заголовки ответов:
тип содержимого: приложение / октет-поток
Комментарии:
1. работает ли это с curl или любым другим клиентом REST, таким как Postman?
2. Это работает с Postman. и у меня там есть 4 параметра заголовка. итак, мне нужно каким-то образом добавить их в мое определение API. но я не знаю как.
Ответ №1:
Это, должно быть, проблема CORS. Вам нужно включить пользовательские заголовки в правилах CORS. Добавьте свои пользовательские заголовки в CORS
раздел в api-manager.xml
. Это влияет на все API. Если вы хотите добавить это только для определенного API, вы можете настроить это в самом API.
Повторный запрос:https://docs.wso2.com/display/AM260/Enabling CORS for APIs
Комментарии:
1. Я использую это, но получаю сообщение об ошибке: «Протокол CORS не позволяет указывать подстановочный знак (любой) источника и учетных данных одновременно. Настройте политику, указав отдельные источники, если необходимо поддерживать учетные данные. » . Я думаю, что это решение не может быть моим решением, потому что, например, у меня есть заголовок ‘authorization’, а у wso2 этот заголовок тоже имеет другое значение. итак, я не могу вызвать API с двумя заголовками ‘authorization’ с разными значениями. В CORS я определил свой требуемый заголовок, но пользователи, вызывающие API, заполняют его, но я хочу, чтобы мои требуемые заголовки были заполнены в определении API
2. Есть ли какая-либо причина, по которой вы хотите включить
<Access-Control-Allow-Credentials>
? И смотрите это, как установить другой заголовок для аутентификации GW. docs.wso2.com/display/AM220/Securing APIs3. Я исправляю проблему с первым посредником, о котором я упоминал в своем вопросе. Проблема заключалась в URL, который я дал для рабочей конечной точки, а не в добавлении требуемых заголовков в определение API. Таким образом, мы можем использовать этот посредник с тегами заголовка для добавления желаемых заголовков.