我的弹簧安全配置和我使用的InvalidSessionStrategy实现有一点问题。
假设用户已连接到该应用并且正在查看页面:/userArea/thePage
并且他们的会话超时,则用户将首先重定向到 { {1}}页面。然后,一旦成功登录,他们将重定向到他们个人区域的主页(/signin
),而我希望他们回到会话时所在的位置超时即/userArea
。
这可能吗?
如果是这样,我如何更改配置/应用程序?
这是我当前的配置:
/userArea/thePage
编辑1 :让我更好地说明我的要求:
我的要求是否可以使用Carsten建议的解决方案(见下文)实施?
答案 0 :(得分:1)
您可以在always-use-default-target="true"
标记中设置form-login
。这会将用户重定向到他们尝试访问的URL,然后才会被截获登录。
但这将是标准行为,而不仅仅是会话超时的情况。根据应用程序的不同,这可能不是您想要的。
修改强> 要执行您想要的操作,您需要找到一种方法来保存用户在会话超时时间所在页面上的信息。我不知道这个问题的任何开箱即用的解决方案,因为没有状态指示用户是否超时或手动注销。
需要做的是:
如果我像我那样实现某些东西,我很可能会存储page-url。从UX的角度来看,还有一些棘手的事情。如果保存的页面依赖于之前实现的状态,会发生什么? (我假设你希望用户在正常登录时转到default-url的原因是什么?)如果用户没有注销,会在晚上关闭睡眠并登录导航到登录页面会发生什么? / page-url超时?)?等
一般来说,我认为最好使用always-use-default-target="true"
,因为这样可以为任何页面添加书签,而不必在每次登录时都进行导航。