Spring Boot配置Jetty初始化参数

时间:2018-06-27 23:14:36

标签: spring-boot spring-security-oauth2

出于上下文目的,我正在将现有代码库从Spring Boot 1.5.3升级到1.5.14。作为该升级的一部分,由于添加了StrictHttpFirewall,它的某些现有测试开始失败,该测试现在抱怨某些重定向URL包含jsessionid

2018-06-27 18:04:33.137  WARN 15406 --- [ qtp10915321-23] org.eclipse.jetty.server.HttpChannel     : /mock/oauth/authorize;jsessionid=node0hhrv3r9m7c6i3ksjrhkeql4m0.node0

org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL contained a potentially malicious String ";"

即使我已将会话跟踪模式设置为cookie,Jetty显然也仍将其写入URL。根据{{​​3}},我可以通过将org.eclipse.jetty.servlet.SessionIdPathParameterName设置为none来禁用它,但是当我尝试使用ServletContextInitializer来做到这一点时:

@Override
public void onStartup(ServletContext servletContext) throws ServletException {
  servletContext.setInitParameter("org.eclipse.jetty.servlet.SessionIdPathParameterName", "none");
}

它不起作用,似乎是因为它是在Jetty已经查询了该属性之后执行的(至少基于我的调试断点)。

开始失败的几个测试正在测试某些oauth2身份验证代码流行为,并且到授权端点的重定向现在有问题。

有什么建议吗?

0 个答案:

没有答案