保留会话id,以防请求中存在特殊参数 Spring 保安

rxztt3cl  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(275)

有人知道是否有任何方法可以配置Spring Security ,如果请求中有参数,它就不会更改会话id。
例如:
somesite.com/home.jsp?password=encrypted-验证后更改会话id
somesite.com/home.jsp?password=encrypted&keepsessionid-身份验证后不更改会话id
我在考虑过滤器链,也许删除有条件的sessionmanagementfilter,但不确定这是否是一个正确的方式,即使这将是工作

yjghlzjz

yjghlzjz1#

对于有同样问题的人。我找到了答案。通过使用多个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();
    }
}

相关问题