【发布时间】:2023-03-09 02:42:01
【问题描述】:
我正在尝试使用 OpenID 对我的 Vaadin 应用程序进行身份验证,但在处理应用程序中的重定向时遇到了困难。
在加载应用程序时,用户会看到一个 OpenID 登录实用程序,它是一个简单的 Vaadin 窗口,带有一些触发重定向到单独的身份验证 servlet (LoginServlet) 的按钮
LoginServlet 然后处理重定向到 OpenID 提供程序和随后重定向回处理身份验证响应的 servlet。安全状态在此处更新(使用 Apache Shiro),稍后可由 Vaadin 应用程序检查。
LoginServlet 然后重定向到应用程序,但这就是问题所在 - 如何处理此重定向? Vaadin 窗口似乎没有处理重定向的方法。
目前唯一的选择似乎是使用 UriFragmentUtility.FragmentChangedListener 并使用 UUID 确保来自 LoginServlet 的重定向是唯一的,确保触发片段更改事件,允许检查用户的身份验证状态并允许访问应用程序。然而,这有点像 hack,会导致混乱的 URIFragment。
如果有人对集成 OpenID 和 Vaadin 或仅在 Vaadin 中处理重定向有任何更好的想法,我将不胜感激。
【问题讨论】: