spring boot exclude url以防止维护会话超时

a11xaf1n  于 2021-07-15  发布在  Java
关注(0)|答案(0)|浏览(214)

我有一个基于spring引导的服务器端应用程序,前端内置。在用户登录之后,在前端我有一个调度方法,它向后端发送请求来刷新表中的数据。每10秒发送一次。我不希望这些请求不断地扩展会话,但我仍然希望此请求仅对授权用户可用。我试着这样做:

  1. @Component
  2. @Order(Integer.MIN_VALUE)
  3. class ExcludeSessionRepositoryFilter : OncePerRequestFilter() {
  4. private val filteredURLs = listOf(
  5. "/xxx",
  6. "/yyy"
  7. )
  8. override fun doFilterInternal(
  9. request: HttpServletRequest,
  10. response: HttpServletResponse,
  11. filterChain: FilterChain
  12. ) {
  13. if (filteredURLs.contains(request.requestURI)) {
  14. request.setAttribute("org.springframework.session.web.http.SessionRepositoryFilter.FILTERED", true)
  15. }
  16. filterChain.doFilter(request, response)
  17. }
  18. }

这是属于国际单项体育联合会的,但根本不起作用。接下来,我尝试根据这里的一个asnwer更改安全配置,如下所示:

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

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

  1. server:
  2. servlet:
  3. session:
  4. timeout: 1m

但即使几分钟后,我仍然有会话,因为这些请求在每10秒后从前端传入。
版本:

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

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题