如果请求中存在特殊参数,请保留会话 ID。 Spring 安全

Keep session id in case of presence of special parameter in request. Spring Security

有人知道是否有任何方法可以配置 Spring 安全性,如果请求中有某些参数,它不会更改会话 ID。

例如:

我在考虑过滤器链,也许有条件地删除 SessionManagementFilter,但不确定这是否是正确的方法,即使这会起作用

对于有同样问题的人。我找到了答案。通过使用多个http安全配置(主安全类的内部类)可以实现不同的会话管理策略。特殊情况的 http 安全配置器应根据一些特殊要求进行调整

@Configuration
@Order(1)
public class SpecialCaseSessionHandlingConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.requestMatcher(request -> Check1(request))
            .authorizeRequests()
            .anyRequest().authenticated();
    }
}