📄 captchaentrypointtests.java
字号:
ep.setPortResolver(new MockPortResolver(8080, 8443)); ep.commence(request, response); assertEquals("https://www.example.com:8443/bigWebApp/hello", response.getRedirectedUrl()); } public void testNormalOperation() throws Exception { CaptchaEntryPoint ep = new CaptchaEntryPoint(); ep.setCaptchaFormUrl("/hello"); ep.setPortMapper(new PortMapperImpl()); ep.setPortResolver(new MockPortResolver(80, 443)); ep.afterPropertiesSet(); ep.setIncludeOriginalRequest(false); MockHttpServletRequest request = new MockHttpServletRequest(); request.setRequestURI("/some_path"); request.setContextPath("/bigWebApp"); request.setScheme("http"); request.setServerName("www.example.com"); request.setContextPath("/bigWebApp"); request.setServerPort(80); MockHttpServletResponse response = new MockHttpServletResponse(); ep.afterPropertiesSet(); ep.commence(request, response); assertEquals("http://www.example.com/bigWebApp/hello", response.getRedirectedUrl()); } public void testOperationWhenHttpsRequestsButHttpsPortUnknown() throws Exception { CaptchaEntryPoint ep = new CaptchaEntryPoint(); ep.setCaptchaFormUrl("/hello"); ep.setPortMapper(new PortMapperImpl()); ep.setPortResolver(new MockPortResolver(8888, 1234)); ep.setForceHttps(true); ep.setIncludeOriginalRequest(false); ep.afterPropertiesSet(); MockHttpServletRequest request = new MockHttpServletRequest(); request.setRequestURI("/some_path"); request.setContextPath("/bigWebApp"); request.setScheme("http"); request.setServerName("www.example.com"); request.setContextPath("/bigWebApp"); request.setServerPort(8888); // NB: Port we can't resolve MockHttpServletResponse response = new MockHttpServletResponse(); ep.afterPropertiesSet(); ep.commence(request, response); // Response doesn't switch to HTTPS, as we didn't know HTTP port 8888 to // HTTP port mapping assertEquals("http://www.example.com:8888/bigWebApp/hello", response.getRedirectedUrl()); } public void testOperationWithOriginalRequestIncludes() throws Exception { CaptchaEntryPoint ep = new CaptchaEntryPoint(); ep.setCaptchaFormUrl("/hello"); PortMapperImpl mapper = new PortMapperImpl(); mapper.getTranslatedPortMappings().put(new Integer(8888), new Integer(1234)); ep.setPortMapper(mapper); ep.setPortResolver(new MockPortResolver(8888, 1234)); ep.setIncludeOriginalRequest(true); ep.afterPropertiesSet(); MockHttpServletRequest request = new MockHttpServletRequest(); request.setMethod("post"); request.setRequestURI("/some_path"); request.setScheme("http"); request.setServerName("www.example.com"); // request.setContextPath("/bigWebApp"); // TODO correct this when the getRequestUrl from mock works... request.setServerPort(8888); // NB: Port we can't resolve MockHttpServletResponse response = new MockHttpServletResponse(); ep.afterPropertiesSet(); ep.commence(request, response); assertEquals("http://www.example.com:8888/hello?original_requestUrl=" + URLEncoder.encode("http://www.example.com:8888/some_path", "UTF-8") + "&original_request_method=post", response.getRedirectedUrl()); // test the query params request.addParameter("name", "value"); response = new MockHttpServletResponse(); ep.commence(request, response); assertEquals("http://www.example.com:8888/hello?original_requestUrl=" + URLEncoder.encode("http://www.example.com:8888/some_path", "UTF-8") + "&original_request_method=post", response.getRedirectedUrl()); // test the multiple query params ep.setIncludeOriginalParameters(true); request.addParameter("name", "value"); request.addParameter("name1", "value2"); response = new MockHttpServletResponse(); ep.commence(request, response); assertEquals("http://www.example.com:8888/hello?original_requestUrl=" + URLEncoder.encode("http://www.example.com:8888/some_path", "UTF-8") + "&original_request_method=post" + "&original_request_parameters=" + URLEncoder.encode("name__value;;name1__value2", "UTF-8"), response.getRedirectedUrl()); // test add parameter to captcha form url?? ep.setCaptchaFormUrl("/hello?toto=titi"); response = new MockHttpServletResponse(); ep.commence(request, response); assertEquals("http://www.example.com:8888/hello?toto=titi&original_requestUrl=" + URLEncoder.encode("http://www.example.com:8888/some_path", "UTF-8") + "&original_request_method=post" + "&original_request_parameters=" + URLEncoder.encode("name__value;;name1__value2", "UTF-8"), response.getRedirectedUrl()); // with forcing!!! ep.setForceHttps(true); response = new MockHttpServletResponse(); ep.commence(request, response); assertEquals("https://www.example.com:1234/hello?toto=titi&original_requestUrl=" + URLEncoder.encode("http://www.example.com:8888/some_path", "UTF-8") + "&original_request_method=post" + "&original_request_parameters=" + URLEncoder.encode("name__value;;name1__value2", "UTF-8"), response.getRedirectedUrl()); } public void testOperationWithOutsideWebApp() throws Exception { CaptchaEntryPoint ep = new CaptchaEntryPoint(); ep.setCaptchaFormUrl("https://www.jcaptcha.net/dotest/"); PortMapperImpl mapper = new PortMapperImpl(); mapper.getTranslatedPortMappings().put(new Integer(8888), new Integer(1234)); ep.setPortMapper(mapper); ep.setPortResolver(new MockPortResolver(8888, 1234)); ep.setIncludeOriginalRequest(true); ep.setOutsideWebApp(true); ep.afterPropertiesSet(); MockHttpServletRequest request = new MockHttpServletRequest(); request.setRequestURI("/some_path"); request.setScheme("http"); request.setServerName("www.example.com"); request.setMethod("post"); // request.setContextPath("/bigWebApp"); // TODO correct this when the getRequestUrl from mock works... request.setServerPort(8888); // NB: Port we can't resolve MockHttpServletResponse response = new MockHttpServletResponse(); ep.afterPropertiesSet(); ep.commence(request, response); assertEquals("https://www.jcaptcha.net/dotest/?original_requestUrl=" + URLEncoder.encode("http://www.example.com:8888/some_path", "UTF-8") + "&original_request_method=post", response.getRedirectedUrl()); // test the query params request.addParameter("name", "value"); response = new MockHttpServletResponse(); ep.commence(request, response); assertEquals("https://www.jcaptcha.net/dotest/?original_requestUrl=" + URLEncoder.encode("http://www.example.com:8888/some_path", "UTF-8") + "&original_request_method=post", response.getRedirectedUrl()); // test the multiple query params ep.setIncludeOriginalParameters(true); request.addParameter("name", "value"); request.addParameter("name1", "value2"); response = new MockHttpServletResponse(); ep.commence(request, response); assertEquals("https://www.jcaptcha.net/dotest/?original_requestUrl=" + URLEncoder.encode("http://www.example.com:8888/some_path", "UTF-8") + "&original_request_method=post" + "&original_request_parameters=" + URLEncoder.encode("name__value;;name1__value2", "UTF-8"), response.getRedirectedUrl()); // test add parameter to captcha form url?? ep.setCaptchaFormUrl("https://www.jcaptcha.net/dotest/?toto=titi"); response = new MockHttpServletResponse(); ep.commence(request, response); assertEquals("https://www.jcaptcha.net/dotest/?toto=titi&original_requestUrl=" + URLEncoder.encode("http://www.example.com:8888/some_path", "UTF-8") + "&original_request_method=post" + "&original_request_parameters=" + URLEncoder.encode("name__value;;name1__value2", "UTF-8"), response.getRedirectedUrl()); // with forcing!!! ep.setForceHttps(true); response = new MockHttpServletResponse(); ep.commence(request, response); assertEquals("https://www.jcaptcha.net/dotest/?toto=titi&original_requestUrl=" + URLEncoder.encode("http://www.example.com:8888/some_path", "UTF-8") + "&original_request_method=post" + "&original_request_parameters=" + URLEncoder.encode("name__value;;name1__value2", "UTF-8"), response.getRedirectedUrl()); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -