Spring boot 限制创建没有主体的会话
我正在使用JDBC的Spring会话,它工作得很好。但有许多会议是在没有原则的情况下创建的。 即使是一个简单的curl请求也会在数据库中创建一个新的会话条目 我们可以为没有主体的会话限制会话创建吗? 这里的主体是指已登录的用户 示例数据库数据:Spring boot 限制创建没有主体的会话,spring-boot,jdbc,spring-session,Spring Boot,Jdbc,Spring Session,我正在使用JDBC的Spring会话,它工作得很好。但有许多会议是在没有原则的情况下创建的。 即使是一个简单的curl请求也会在数据库中创建一个新的会话条目 我们可以为没有主体的会话限制会话创建吗? 这里的主体是指已登录的用户 示例数据库数据: SESSION_ID| CREATION_TIME| LAST_ACCESS_TIME | MAX_INACTIVE_INTERVAL | PRINCIPAL_NAME | 0112a88c | 1567062697443 | 156706269744
SESSION_ID| CREATION_TIME| LAST_ACCESS_TIME | MAX_INACTIVE_INTERVAL | PRINCIPAL_NAME
| 0112a88c | 1567062697443 | 1567062697443 | 43200 | abc@gmail.com
| 0123f31e | 1567063051563 | 1567063051563 | 43200 | NULL
更新:这些会话是为状态api调用创建的。设置SessionCreationPolicy不起作用。我通过引入一个过滤器解决了这个问题
@组件
公共类ExcludeSessionRepositoryFilter扩展了OncePerRequestFilter{
@凌驾
受保护的无效doFilterInternal(HttpServletRequest httpRequest、HttpServletResponse httpResponse、,
FilterChain FilterChain)抛出ServletException、IOException{
setAttribute(“org.springframework.session.web.http.SessionRepositoryFilter.FILTERED”,Boolean.TRUE);
filterChain.doFilter(httpRequest,httpResponse);
}
}