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

如何在Vaadin 14中处理SSO重定向,vaadin,vaadin-flow,vaadin10,vaadin14,Vaadin,Vaadin Flow,Vaadin10,Vaadin14,我们有一个Vaadin 14 Flow应用程序,它由一个Apache反向代理前端,该代理集成了用于身份验证的 当会话不再有效时,由于会话超时或在另一个浏览器选项卡/窗口中注销,Apache服务器将向Gluu服务器发送重定向,以允许用户再次登录。 但是,当内部Vaadin调用Ajax请求发生这种情况时,Vaadin似乎无法很好地处理该响应,并且显示了来自服务器错误的无效JSON响应 我想要的是Vaadin将浏览器位置设置为重定向中指示的URL,或者刷新页面,可能会在页面之间显示一条确认消息,在这种

我们有一个Vaadin 14 Flow应用程序,它由一个Apache反向代理前端,该代理集成了用于身份验证的

当会话不再有效时,由于会话超时或在另一个浏览器选项卡/窗口中注销,Apache服务器将向Gluu服务器发送重定向,以允许用户再次登录。 但是,当内部Vaadin调用Ajax请求发生这种情况时,Vaadin似乎无法很好地处理该响应,并且显示了来自服务器错误的无效JSON响应


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

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


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

谢谢,我将尝试此操作。Vaadin没有在响应中检测到标准的30X HTTP状态码和Location:头,而不需要此自定义解决方案,这是有原因的吗?浏览器会自动执行任何常规的30X重定向,而不直接涉及调用方,例如Vaadin。此外,从理论上讲,30倍重定向可能仍然会导致包含Vaadin期望的JSON的响应,而Vaadin刷新令牌则明确表示应该重新加载页面,而不是试图解释响应。我理解。从技术上讲,这将是可能的设置值手册,在最近的浏览器可能是一些为Vaadin 15+?。然后,可以将Vaadin配置为设置重定向到特定URL的浏览器位置,并且只需遵循其他重定向即可获得预期的JSON。这将涵盖SSO的登录页面不直接受应用程序开发人员控制的情况。配置特定重定向URL将导致顶级导航的好主意!我还意识到,响应的内容类型可以用作指标。此外,通过查找responseURL中的更改,可以检测到XHR重定向,但不能阻止或拦截。我把这个想法记录在一本书中。