我有一个包含 4 个步骤的 Web 流程。我也正确配置了弹簧安全性。
在最后一步,我需要保存需要用户帐户的用户订单。因此,我需要确保用户在执行最后一步之前已登录。所以我想要的是: - 已经登录的用户将顺利进入最后一步 - 未登录的用户将不得不转到我们的注册/登录页面,之后他们将被重定向回来以继续流程。
注意:第一步不需要登录(或注册)。只有最后一步。
登录/注册后如何重定向回最后一步?
我有一个包含 4 个步骤的 Web 流程。我也正确配置了弹簧安全性。
在最后一步,我需要保存需要用户帐户的用户订单。因此,我需要确保用户在执行最后一步之前已登录。所以我想要的是: - 已经登录的用户将顺利进入最后一步 - 未登录的用户将不得不转到我们的注册/登录页面,之后他们将被重定向回来以继续流程。
注意:第一步不需要登录(或注册)。只有最后一步。
登录/注册后如何重定向回最后一步?
想通了登录。只需添加:
<secured attributes="ROLE_USER" />
到您要保护的流程元素。请参阅Spring WebFlow 文档
我还没有解决它的注册。因为我们需要重新进入流程。有任何想法吗?
您可以尝试重用 RequestCache(由 Spring Security 本身使用)。在最后一页的请求处理期间,您需要执行以下操作:
requestCache.saveRequest(request, response);
ExceptionTranslationFilter.sendStartAuthentication(...)
例如参见。
如果您的登录页面配置正确,那么 Spring Security 将自动添加RequestCacheAwareFilter
到相应的文件管理器链中。RequestCacheAwareFilter
会成功的。
编辑。它必须在 Spring MVC 环境中工作。我不确定 Spring Web-Flow (可能有更高级别的框架支持这种情况)