微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决Spring Boot 排除 URL 以防止维护会话超时

我有一个基于 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)
    }
}

它即将出现,但它根本不起作用。接下来,我尝试根据这里的一个 asnwers 更改安全配置,如下所示:

 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.+

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。