如何在 Vaadin 14 中处理 SSO 重定向

how to handle SSO redirect in Vaadin 14

我们有一个 Vaadin 14 (Flow) 应用程序,它的前端是一个 Apache 反向代理,它与 Gluu 集成以进行身份​​验证。

当会话不再有效时,无论是因为会话超时还是在另一个浏览器中注销 tab/window,Apache 服务器都会向 Gluu 服务器发送重定向,让用户重新登录。 然而,当内部 Vaadin XHR 调用(Ajax 请求)发生这种情况时,Vaadin 似乎无法很好地处理此响应,并显示 "Invalid JSON response from server" 错误。

我想要的是让 Vaadin 将浏览器位置设置为重定向中指示的 URL,或者刷新页面(可能之间有一条确认消息),在这种情况下,浏览器会很好地遵循重定向。如何实现,或者还有哪些其他选择?

如果 XHR 响应无法解析为 JSON,Vaadin 将在响应文本中的任何位置查找 Vaadin-Refresh 字符串。如果它存在,那么 Vaadin 将重新加载页面而不是显示错误消息。或者,您可以使用 Vaadin-Refresh: <url> 格式,这将使 Vaadin 重定向到 <url> 而不是重新加载当前位置。

您可以将 Gluu 配置为包含此字符串,例如在用户需要登录时发送的响应中的 HTML 注释。