Spring Boot 排除 URL 以防止维持会话超时

2024-01-05

我有基于 Spring Boot 的服务器端应用程序,并在 Angular 中构建了前端。用户登录后,在前端,我安排了向后端发送请求以刷新表中数据的方法。每 10 秒发送一次。我不希望这些请求不断延长会话,但我仍然希望此请求仅对授权用户可用。我尝试过这样操作:

@Component
@Order(Integer.MIN_VALUE)
class ExcludeSessionRepositoryFilter : OncePerRequestFilter() {

private val filteredURLs = listOf(
    "/xxx",
    "/yyy"
)

override fun doFilterInternal(
    request: HttpServletRequest,
    response: HttpServletResponse,
    filterChain: FilterChain
) {
    if (filteredURLs.contains(request.requestURI)) {
        request.setAttribute("org.springframework.session.web.http.SessionRepositoryFilter.FILTERED", true)
    }
    filterChain.doFilter(request, response)
    }
}

已经到了if了,但是根本就没有成功。接下来,我尝试根据此处的答案之一更改安全配置,如下所示:

 http.csrf()
            .ignoringAntMatchers(""/login","/xxx","/yyy")

但它也不起作用。 对于测试,我在如下属性中设置了会话超时:

server:
  servlet:
    session:
      timeout: 1m

但即使几分钟后,我仍然可以进行会话,因为每 10 秒后就会从前端发出这些请求。

版本:

 org.springframework.boot:2.4.0
 org.springframework.boot:spring-boot-starter-security:2.+

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Boot 排除 URL 以防止维持会话超时 的相关文章

随机推荐