Я заметил кучу ошибок «
java.net.SocketException: сброс соединения» (а не «сброс соединения по одноранговому узлу») исключения в приложении, использующем адаптер Keycloak (версия 2.1.0-Final). Объект AdaptorConfig в провайдере (который затем используется для создания пула соединений Http) выглядит примерно так:
Код: Выделить всё
{
"realm": "realm_name",
"realm-public-key": "xxxxx",
"auth-server-url": "some_url_going_through_AWS_ALB",
"ssl-required": "external",
"resource": "client_id",
"public-client": true,
"principal-attribute": "email"
}
Следует отметить, что URL-адрес auth-server указывает на общедоступный URL-адрес HTTPS, обслуживаемый через ALB (балансировщик нагрузки приложений AWS), и на шлюз NAT перед узел EC2, расположенный в частной подсети. Более того, исключение регистрируется вместе с сообщением от адаптера. Например: «не удалось преобразовать код в токен» в «OAuthRequestAuthenticator» или «Ошибка обновления токена» в «RefreshableKeycloakSecurityContext».
Эта проблема не всегда воспроизводится, что заставляет меня полагать, что пул соединений отбрасывает некоторые соединения (возможно, простаивающие), не заменяя их должным образом. Есть ли в адаптере (или его конфигурации) способ принудительно отключить или заменить соединения в пуле (аналогично тому, что предлагают пулы соединений с базой данных)? Я не против обновить адаптер, если это поможет.
Подробнее здесь:
https://stackoverflow.com/questions/499 ... va-adapter