List of usage examples for org.springframework.mock.web MockHttpServletResponse getRedirectedUrl
@Nullable
public String getRedirectedUrl()
From source file:fr.xebia.servlet.filter.XForwardedFilterTest.java
@Test public void testIncomingRequestIsSecuredButProtocolHeaderSaysItIsNotWithCustomValues() throws Exception { // PREPARE/*w w w . j a va 2 s. co m*/ XForwardedFilter xforwardedFilter = new XForwardedFilter(); MockFilterConfig filterConfig = new MockFilterConfig(); filterConfig.addInitParameter(XForwardedFilter.PROTOCOL_HEADER_PARAMETER, "x-forwarded-proto"); filterConfig.addInitParameter(XForwardedFilter.REMOTE_IP_HEADER_PARAMETER, "x-my-forwarded-for"); filterConfig.addInitParameter(XForwardedFilter.HTTP_SERVER_PORT_PARAMETER, "8080"); xforwardedFilter.init(filterConfig); MockFilterChain filterChain = new MockFilterChain(); MockHttpServletRequest request = new MockHttpServletRequest(); request.setRemoteAddr("192.168.0.10"); request.setSecure(true); request.setScheme("https"); request.addHeader("x-my-forwarded-for", "140.211.11.130"); request.addHeader("x-forwarded-proto", "http"); MockHttpServletResponse response = new MockHttpServletResponse(); // TEST xforwardedFilter.doFilter(request, response, filterChain); // VERIFY boolean actualSecure = filterChain.getRequest().isSecure(); assertEquals("request must be unsecured as header x-forwarded-proto said it is http", false, actualSecure); String actualScheme = filterChain.getRequest().getScheme(); assertEquals("scheme must be http as header x-forwarded-proto said it is http", "http", actualScheme); int actualServerPort = filterChain.getRequest().getServerPort(); assertEquals("wrong http server port", 8080, actualServerPort); String actualRemoteAddr = ((HttpServletRequest) filterChain.getRequest()).getRemoteAddr(); assertEquals("remoteAddr", "140.211.11.130", actualRemoteAddr); String actualRemoteHost = ((HttpServletRequest) filterChain.getRequest()).getRemoteHost(); assertEquals("remoteHost", "140.211.11.130", actualRemoteHost); ((HttpServletResponse) filterChain.getResponse()).sendRedirect("http://absolute/URL"); assertEquals("redirectedUrl", "http://absolute/URL", response.getRedirectedUrl()); }
From source file:com.programmingchronicles.tdd.web.addressbook.TestAddContactController.java
/** * Test de HttpPost: Verifica que el contacto se aade a la agenda * usando el servicio de address book.//from w ww. ja va2 s. c o m * * <p><b>REFACTOFING:</b> * El testDoPostGetParameters ya no era necesario, se prueba * lo mismo en testDoPostAddContact. </p> * * <p> * El testDoPostAddContactRedirect tambin se ha fusionado aqui ya que tiene * ms sentido comprobar la funcionalidad completa.</p> */ @Test public void testDoPostAddContact() throws ServletException, IOException, ParseException { // Fakes de los parametros del doGet y doPost que amplian la interfaz // estandar permitiendo verificaciones sencillas por estado. // // Se utilizan los mocks de Spring Test Utilities. MockHttpServletRequest fakeRequest = new MockHttpServletRequest(); MockHttpServletResponse fakeResponse = new MockHttpServletResponse(); // Ahora los fackes nos permiten configurar los parametros de entrada // del mtodo testeado. Esto no lo permitan los mocks del contenedor // ya que HttpServletRequest no tiene un "setParameters". fakeRequest.setParameter("firstName", "Pedro"); fakeRequest.setParameter("surname", "Ballesteros"); fakeRequest.setParameter("birthday", "8/1/1974"); fakeRequest.setParameter("phone", "69696969"); // Ejecucin del test. controller.doPost(fakeRequest, fakeResponse); // Verifica que se llama al addContact del mock del addressbook ArgumentCaptor<Contact> argument = ArgumentCaptor.forClass(Contact.class); verify(mockAddressbook).addContact(argument.capture()); // En el verify anterior capturamos el argumento con el que se llama // a la agenda, y podemos validar que se aade el contacto correcto. Contact contact = argument.getValue(); assertEquals("Pedro", contact.getFirstName()); assertEquals("Ballesteros", contact.getSurname()); assertEquals(dateFormat.parse("8/1/1974"), contact.getBirthday()); assertEquals("69696969", contact.getPhone()); // Verifica con el fake que no se ha intentado crear el modelo de errores assertNull(fakeRequest.getAttribute("errors")); // El Fake del HttpServletResponse ahora nos permite verificar por estado // la respuesta del doPost. // Verifica que se entrega un redirect de navegador al response, ahora // el fake nos permite acceder a datos de la respuesta. assertEquals("redirectPath", fakeResponse.getRedirectedUrl()); }
From source file:fr.xebia.servlet.filter.XForwardedFilterTest.java
@Test public void testIncomingRequestIsSecuredButProtocolHeaderSaysItIsNotWithDefaultValues() throws Exception { // PREPARE//from www . j ava 2 s. c o m XForwardedFilter xforwardedFilter = new XForwardedFilter(); MockFilterConfig filterConfig = new MockFilterConfig(); filterConfig.addInitParameter(XForwardedFilter.PROTOCOL_HEADER_PARAMETER, "x-forwarded-proto"); xforwardedFilter.init(filterConfig); MockFilterChain filterChain = new MockFilterChain(); MockHttpServletRequest request = new MockHttpServletRequest(); request.setRemoteAddr("192.168.0.10"); request.setSecure(true); request.setScheme("https"); request.addHeader("x-forwarded-for", "140.211.11.130"); request.addHeader("x-forwarded-proto", "http"); MockHttpServletResponse response = new MockHttpServletResponse(); // TEST xforwardedFilter.doFilter(request, response, filterChain); // VERIFY boolean actualSecure = filterChain.getRequest().isSecure(); assertEquals("request must be unsecured as header x-forwarded-proto said it is http", false, actualSecure); String actualScheme = filterChain.getRequest().getScheme(); assertEquals("scheme must be http as header x-forwarded-proto said it is http", "http", actualScheme); String actualRemoteAddr = ((HttpServletRequest) filterChain.getRequest()).getRemoteAddr(); assertEquals("remoteAddr", "140.211.11.130", actualRemoteAddr); String actualRemoteHost = ((HttpServletRequest) filterChain.getRequest()).getRemoteHost(); assertEquals("remoteHost", "140.211.11.130", actualRemoteHost); String actualUrl = ((HttpServletResponse) filterChain.getResponse()).encodeURL("/relativeURL"); assertEquals("encodeURL relative", "http://localhost/relativeURL", actualUrl); actualUrl = ((HttpServletResponse) filterChain.getResponse()).encodeURL("https://absolute/URL"); assertEquals("encodeURL absolute", "https://absolute/URL", actualUrl); String actualRedirectUrl = ((HttpServletResponse) filterChain.getResponse()) .encodeRedirectURL("/relativeURL"); assertEquals("encodeRedirectURL relative", "http://localhost/relativeURL", actualRedirectUrl); ((HttpServletResponse) filterChain.getResponse()).sendRedirect("/relativeURL"); assertEquals("redirectedUrl", "http://localhost/relativeURL", response.getRedirectedUrl()); }
From source file:org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilterTests.java
@Test public void testFilterProcessesUrlVariationsRespected() throws Exception { // Setup our HTTP request MockHttpServletRequest request = createMockAuthenticationRequest(); request.setServletPath("/j_OTHER_LOCATION"); request.setRequestURI("/mycontext/j_OTHER_LOCATION"); // Setup our filter configuration MockFilterConfig config = new MockFilterConfig(null, null); // Setup our expectation that the filter chain will not be invoked, as we redirect // to defaultTargetUrl MockFilterChain chain = new MockFilterChain(false); MockHttpServletResponse response = new MockHttpServletResponse(); // Setup our test object, to grant access MockAuthenticationFilter filter = new MockAuthenticationFilter(true); filter.setFilterProcessesUrl("/j_OTHER_LOCATION"); filter.setAuthenticationSuccessHandler(successHandler); // Test/*w w w . ja v a2 s . c o m*/ filter.doFilter(request, response, chain); assertThat(response.getRedirectedUrl()).isEqualTo("/mycontext/logged_in.jsp"); assertThat(SecurityContextHolder.getContext().getAuthentication()).isNotNull(); assertThat(SecurityContextHolder.getContext().getAuthentication().getPrincipal().toString()) .isEqualTo("test"); }
From source file:org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilterTests.java
@Test public void testNormalOperationWithDefaultFilterProcessesUrl() throws Exception { // Setup our HTTP request MockHttpServletRequest request = createMockAuthenticationRequest(); HttpSession sessionPreAuth = request.getSession(); // Setup our filter configuration MockFilterConfig config = new MockFilterConfig(null, null); // Setup our expectation that the filter chain will not be invoked, as we redirect // to defaultTargetUrl MockFilterChain chain = new MockFilterChain(false); MockHttpServletResponse response = new MockHttpServletResponse(); // Setup our test object, to grant access MockAuthenticationFilter filter = new MockAuthenticationFilter(true); filter.setFilterProcessesUrl("/j_mock_post"); filter.setSessionAuthenticationStrategy(mock(SessionAuthenticationStrategy.class)); filter.setAuthenticationSuccessHandler(successHandler); filter.setAuthenticationFailureHandler(failureHandler); filter.setAuthenticationManager(mock(AuthenticationManager.class)); filter.afterPropertiesSet();// w w w .j ava 2 s. c om // Test filter.doFilter(request, response, chain); assertThat(response.getRedirectedUrl()).isEqualTo("/mycontext/logged_in.jsp"); assertThat(SecurityContextHolder.getContext().getAuthentication()).isNotNull(); assertThat(SecurityContextHolder.getContext().getAuthentication().getPrincipal().toString()) .isEqualTo("test"); // Should still have the same session assertThat(request.getSession()).isEqualTo(sessionPreAuth); }
From source file:org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilterTests.java
@Test public void testSuccessLoginThenFailureLoginResultsInSessionLosingToken() throws Exception { // Setup our HTTP request MockHttpServletRequest request = createMockAuthenticationRequest(); // Setup our filter configuration MockFilterConfig config = new MockFilterConfig(null, null); // Setup our expectation that the filter chain will not be invoked, as we redirect // to defaultTargetUrl MockFilterChain chain = new MockFilterChain(false); MockHttpServletResponse response = new MockHttpServletResponse(); // Setup our test object, to grant access MockAuthenticationFilter filter = new MockAuthenticationFilter(true); filter.setFilterProcessesUrl("/j_mock_post"); filter.setAuthenticationSuccessHandler(successHandler); // Test//from w ww .j a va2 s .com filter.doFilter(request, response, chain); assertThat(response.getRedirectedUrl()).isEqualTo("/mycontext/logged_in.jsp"); assertThat(SecurityContextHolder.getContext().getAuthentication()).isNotNull(); assertThat(SecurityContextHolder.getContext().getAuthentication().getPrincipal().toString()) .isEqualTo("test"); // Now try again but this time have filter deny access // Setup our HTTP request // Setup our expectation that the filter chain will not be invoked, as we redirect // to authenticationFailureUrl chain = new MockFilterChain(false); response = new MockHttpServletResponse(); // Setup our test object, to deny access filter = new MockAuthenticationFilter(false); filter.setFilterProcessesUrl("/j_mock_post"); filter.setAuthenticationFailureHandler(failureHandler); // Test filter.doFilter(request, response, chain); assertThat(SecurityContextHolder.getContext().getAuthentication()).isNull(); }