Session 决定Spring security中无效会话的重定向
我已经在我的webapp项目上设置了Spring安全性 我的应用程序会话过期时间设置为15分钟 spring安全配置非常基本,我有Session 决定Spring security中无效会话的重定向,session,spring-security,Session,Spring Security,我已经在我的webapp项目上设置了Spring安全性 我的应用程序会话过期时间设置为15分钟 spring安全配置非常基本,我有 <http use-expressions="true" disable-url-rewriting="true"> <csrf /> <intercept-url pattern="/login/auth" access="permitAll" /> <intercept-url pattern
<http use-expressions="true" disable-url-rewriting="true">
<csrf />
<intercept-url pattern="/login/auth" access="permitAll" />
<intercept-url pattern="/login*" access="permitAll" />
<intercept-url pattern="/about" access="permitAll"/>
<intercept-url pattern="/contact-us" access="permitAll"/>
<intercept-url pattern="/" access="permitAll"/>
<intercept-url pattern="/**" access="hasRole('ROLE_USER')" requires-channel="any"/>
<session-management invalid-session-url="/?invalidSession=1"
session-authentication-error-url="/login?session=fail"
session-fixation-protection="migrateSession">
<concurrency-control max-sessions="1" error-if-maximum-exceeded="true"
expired-url="/login?invalidSession=1"/>
</session-management>
现在我遇到的问题是,例如,如果用户发送了无效的会话id,spring总是重定向到带有“/?invalidSession=1”的主页
我的意思是,这是一个问题,因为如果用户在一段时间后,尝试进入/联系我们页面(这是一个不受保护的资源),他会被重定向到主页
我认为一种解决方案是spring创建一个新的会话,然后重定向到以前请求的资源,而不是总是无效的会话url
你如何处理这些情况 如果contact us是一个不受保护的资源,它应该位于不包括会话管理的其他http元素中。您是否建议创建第二个元素,该元素包含所有不受保护的资源,而不包含任何元素?然后我是否应该使用access=“permitAll”将所有资源移动到新的http元素中?不,只是关于并联系我们。您可以添加2个http元素<代码>。在“联系我们”页面中,我使用安全标记库在标题上显示登录的用户名。当使用security=“none”将这些资源作为单独资源添加时,将跳过筛选器,并且使用安全功能的所有部分不再工作。我最终将无效会话url=“/?invalidSession=1”完全从我的配置中删除,以避免Spring security在从客户端发送的无效会话ID上失败