У нас проблема, аналогичная описанной в Ошибка аутентификации WSO2 на узле шлюза, на котором выполняется WSO2 AM 2.1.0 , но наша конфигурация немного отличается, и мы провели дополнительный тест
Среда: Ubuntu LTS 16.04.4 Java "1.8.0_171" (известные проблемы, о которых сообщается, см. Ниже) WSO2 2.1.0 Мы деактивировали сжатие в 3 узлах, отредактировав catalina-server.xml Дополнительно: мы повторили тесты послепонижение Java до 1.8.0_144.Те же результаты.
Мы развернули на одной машине 3 узла - 1 диспетчер запуска wso2server.sh - 2 шлюза wso2server.sh -Dprofile = запуск шлюза-менеджера - уникальный набор баз данных H2, общий для всех узлов(мы можем перестроить среду в любой момент, с нуля)
Первоначальный тест
- Мы настроили API Key Validator с помощью Thrift.Существует только один ThriftServer, запущенный на узле менеджера
Ключ ключа API Validator API (изменено реальное имя хоста на example.com)
<APIKeyValidator>
<ServerURL>https://apimanager.example.com:9443/services/</ServerURL>
<Username>${admin.username}</Username>
<Password>${admin.password}</Password>
<KeyValidatorClientType>ThriftClient</KeyValidatorClientType>
<ThriftClientConnectionTimeOut>10000</ThriftClientConnectionTimeOut>
<EnableThriftServer>true</EnableThriftServer>
<ThriftServerHost>apimanager.example.com</ThriftServerHost>
<ThriftClientPort>10397</ThriftClientPort>
<KeyValidationHandlerClassName>org.wso2.carbon.apimgt.keymgt.handlers.DefaultKeyValidationHandler</KeyValidationHandlerClassName>
</APIKeyValidator>
Ключи узла песочницы и шлюза Key Key Validator имеют одинаковую конфигурацию, за исключением того, что параметр <EnableThriftServer>
равен false
Результат теста В консоли API мы получаем(мы используем пример PizzaShack API в GET / меню)
{ "fault": { "code": 900900, "message": "Unclassified Authentication Failure", "description": "Error while accessing backend services for API key validation" } }
Трассировка шлюза
TID: [-1234] [] [2018-05-21 13:15:17,351] WARN {org.wso2.carbon.apimgt.gateway.handlers.security.thrift.ThriftKeyValidatorClient} - Login failed.. Authenticating again.. {org.wso2.carbon.apimgt.gateway.handlers.security.thrift.ThriftKeyValidatorClient}
TID: [-1234] [] [2018-05-21 13:15:17,392] WARN {org.wso2.carbon.apimgt.gateway.handlers.security.APIAuthenticationHandler} - API authentication failure due to Unclassified Authentication Failure {org.wso2.carbon.apimgt.gateway.handlers.security.APIAuthenticationHandler}
Трассировка менеджера (консоль API)
TID: [-1234] [] [2018-05-21 13:15:17,372] INFO {org.wso2.carbon.core.services.util.CarbonAuthenticationUtil} - 'admin@carbon.super [-1234]' logged in at [2018-05-21 13:15:17,372+0200] from IP address {org.wso2.carbon.core.services.util.CarbonAuthenticationUtil}
Тест с включенной отладкой
Тест с отладкой невозможен из-за предыдущей ошибки (см. Комментарий Bee ниже)
Дополнительноtests
- Следуя советам оригинального поста, мы изменили APIKeyValidator на WSClient.После некоторой проблемы с начальной настройкой все работает нормально
- Мы попытались также вызвать CURL, без изменений.