如果请求中存在特殊参数,请保留会话 ID。 Spring 安全
Keep session id in case of presence of special parameter in request. Spring Security
有人知道是否有任何方法可以配置 Spring 安全性,如果请求中有某些参数,它不会更改会话 ID。
例如:
somesite.com/home.jsp?password=encrypted- 在之后更改会话 ID
认证
somesite.com/home.jsp?password=encrypted& keepsessionid - don 't
身份验证后更改会话 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();
}
}
有人知道是否有任何方法可以配置 Spring 安全性,如果请求中有某些参数,它不会更改会话 ID。
例如:
somesite.com/home.jsp?password=encrypted- 在之后更改会话 ID 认证
somesite.com/home.jsp?password=encrypted& keepsessionid - don 't 身份验证后更改会话 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();
}
}