问题描述
当我的用户收到“请验证电子邮件链接”时,模板中的链接始终为:http://localhost:8280/auth....
但在此更改后,我无法再启动我的 quarkus 应用程序,因为我收到以下错误消息:颁发者验证错误:收到 [https://myLinkToMyWebsite.com/auth/realms/turniersoftware]
所以我在 keycloak 中删除了这个设置。
我认为 keycloak 正在使用此 URL 进行电子邮件广播。 “Quarkus-portal”是我的java应用程序。
如果我在 keycloak 中单击模拟用户并在 keycloak 管理网站中设置“验证电子邮件”操作,我会收到带有正确链接的电子邮件验证电子邮件。
如果我的 java 程序说“sendVerifyEmail”,它将用“localhost:8280”发送
有人可以解释一下,我必须配置什么才能使我的电子邮件广播中的域正确。谢谢
解决方法
根据 keycloak 文档 默认主机名提供程序使用配置的 frontendUrl 作为前端请求(来自用户代理的请求)的基本 URL,并使用请求 URL 作为后端请求(来自客户端的直接请求)的基础).
在您的情况下,我认为配置的客户端是 Java client(which is backend)
,因此为了强制所有后端请求通过公共域(frontendUrl
),您可能需要设置 forceBackendUrlToFrontendUrl
属性到 true
文件中的 standalone.xml
。
请查看以下链接以获取更多参考。
Hostname SPI