问题描述
我有一个基于 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 (将#修改为@)