我注意到一堆“ java.net.SocketException:连接重置 ”(不是“连接器重置”)使用Keycloak适配器(版本2.1.0-Final)的应用程序中的异常。提供程序中的AdapterConfig对象(随后用于构建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"
}
值得一提的是,auth-server-url指向通过ALB(AWS的应用程序负载均衡器)提供的公共HTTPS URL,以及驻留在私有子网中的EC2节点前面的NAT网关。此外,将记录异常以及来自适配器的消息。例如:“ OAuthRequestAuthenticator ”中的“无法将代码转换为令牌”或“ RefreshableKeycloakSecurityContext ”中的“刷新令牌失败”。
这个问题不能始终如一地重现,这让我相信连接池会丢弃一些连接(可能是空闲连接)而不会正确替换它们。适配器(或其配置)中是否有一种方法可以在池中强制执行退休或连接替换(类似于数据库连接池提供的内容)?如果有帮助,我不介意更新适配器。