프로그래밍 방식으로 구성된 갑티 서버가 있습니다. 9.3.7에서 9.4.7로 업그레이드했는데 이제 공백이있는 컨텍스트 경로가 더 이상 작동하지 않습니다.부두 9.4 ServletContextHandler.setContextPath 동작 또는 요청 데이터 변경
그래서 servicePath = "/ Foo/Bar One Two"이고 요청에는 적절한 % 20 대체 공백이 있습니다. ..
내 서버 유일한 차이점은 컨텍스트 경로 인 두 개의 동일한 서블릿을 가지고
: 내 로그 요청 ""8180/푸/바 % 20One % 20Two /는 foobar HTTP/1.1 // 로컬 호스트를 GET "을 보여줍니다 ? 변경 무엇이 자원 경로가 서블릿에 표시되는 방법이 될 수
컨텍스트 경로를 지정 내 코드는 모양처럼 :.
ServletHolder holder = new ServletHolder(...);
ServletContextHandler handler = new ServletContextHandler();
handler.setContextPath(servicePath);
handler.setVirtualHosts(connectors);
handler.addServlet(holder, "/*");
contextHandlers.addHandler(handler);
그래서 지금 org.eclipse.jetty.server 요청 .Request는 이전에 인코딩되지 않은 URL 정보를 포함합니다.
- URL (originalURI)은 요청에 따라 org.eclipse.jetty.server.Request가 완전히 인코딩되도록 보장되어 있습니까?
- 분명히 ServletContextHandler.setContextPath()는 인코딩되지 않은 경로를 허용합니다. 둘 다 받아 들일 수 있습니까?
감사
request.getContextPath()가 인코딩 된 경로를 반환하는 것처럼 보입니다. 이게 보장 되나요? –