@ -69,14 +69,10 @@ public class ShallowEtagHeaderFilterTests {
@@ -69,14 +69,10 @@ public class ShallowEtagHeaderFilterTests {
MockHttpServletResponse response = new MockHttpServletResponse ( ) ;
final byte [ ] responseBody = "Hello World" . getBytes ( "UTF-8" ) ;
FilterChain filterChain = new FilterChain ( ) {
@Override
public void doFilter ( ServletRequest filterRequest , ServletResponse filterResponse )
throws IOException , ServletException {
assertEquals ( "Invalid request passed" , request , filterRequest ) ;
( ( HttpServletResponse ) filterResponse ) . setStatus ( HttpServletResponse . SC_OK ) ;
FileCopyUtils . copy ( responseBody , filterResponse . getOutputStream ( ) ) ;
}
FilterChain filterChain = ( filterRequest , filterResponse ) - > {
assertEquals ( "Invalid request passed" , request , filterRequest ) ;
( ( HttpServletResponse ) filterResponse ) . setStatus ( HttpServletResponse . SC_OK ) ;
FileCopyUtils . copy ( responseBody , filterResponse . getOutputStream ( ) ) ;
} ;
filter . doFilter ( request , response , filterChain ) ;
@ -93,15 +89,11 @@ public class ShallowEtagHeaderFilterTests {
@@ -93,15 +89,11 @@ public class ShallowEtagHeaderFilterTests {
request . addHeader ( "If-None-Match" , etag ) ;
MockHttpServletResponse response = new MockHttpServletResponse ( ) ;
FilterChain filterChain = new FilterChain ( ) {
@Override
public void doFilter ( ServletRequest filterRequest , ServletResponse filterResponse )
throws IOException , ServletException {
assertEquals ( "Invalid request passed" , request , filterRequest ) ;
byte [ ] responseBody = "Hello World" . getBytes ( "UTF-8" ) ;
FileCopyUtils . copy ( responseBody , filterResponse . getOutputStream ( ) ) ;
filterResponse . setContentLength ( responseBody . length ) ;
}
FilterChain filterChain = ( filterRequest , filterResponse ) - > {
assertEquals ( "Invalid request passed" , request , filterRequest ) ;
byte [ ] responseBody = "Hello World" . getBytes ( "UTF-8" ) ;
FileCopyUtils . copy ( responseBody , filterResponse . getOutputStream ( ) ) ;
filterResponse . setContentLength ( responseBody . length ) ;
} ;
filter . doFilter ( request , response , filterChain ) ;
@ -118,15 +110,11 @@ public class ShallowEtagHeaderFilterTests {
@@ -118,15 +110,11 @@ public class ShallowEtagHeaderFilterTests {
request . addHeader ( "If-None-Match" , etag ) ;
MockHttpServletResponse response = new MockHttpServletResponse ( ) ;
FilterChain filterChain = new FilterChain ( ) {
@Override
public void doFilter ( ServletRequest filterRequest , ServletResponse filterResponse )
throws IOException , ServletException {
assertEquals ( "Invalid request passed" , request , filterRequest ) ;
( ( HttpServletResponse ) filterResponse ) . setStatus ( HttpServletResponse . SC_OK ) ;
String responseBody = "Hello World" ;
FileCopyUtils . copy ( responseBody , filterResponse . getWriter ( ) ) ;
}
FilterChain filterChain = ( filterRequest , filterResponse ) - > {
assertEquals ( "Invalid request passed" , request , filterRequest ) ;
( ( HttpServletResponse ) filterResponse ) . setStatus ( HttpServletResponse . SC_OK ) ;
String responseBody = "Hello World" ;
FileCopyUtils . copy ( responseBody , filterResponse . getWriter ( ) ) ;
} ;
filter . doFilter ( request , response , filterChain ) ;
@ -136,20 +124,38 @@ public class ShallowEtagHeaderFilterTests {
@@ -136,20 +124,38 @@ public class ShallowEtagHeaderFilterTests {
assertArrayEquals ( "Invalid content" , new byte [ 0 ] , response . getContentAsByteArray ( ) ) ;
}
// SPR-12960
@Test
public void filterWriterWithDisabledCaching ( ) throws Exception {
final MockHttpServletRequest request = new MockHttpServletRequest ( "GET" , "/hotels" ) ;
MockHttpServletResponse response = new MockHttpServletResponse ( ) ;
final byte [ ] responseBody = "Hello World" . getBytes ( "UTF-8" ) ;
FilterChain filterChain = ( filterRequest , filterResponse ) - > {
assertEquals ( "Invalid request passed" , request , filterRequest ) ;
( ( HttpServletResponse ) filterResponse ) . setStatus ( HttpServletResponse . SC_OK ) ;
FileCopyUtils . copy ( responseBody , filterResponse . getOutputStream ( ) ) ;
} ;
ShallowEtagHeaderFilter . disableContentCaching ( request ) ;
this . filter . doFilter ( request , response , filterChain ) ;
assertEquals ( 200 , response . getStatus ( ) ) ;
assertNull ( response . getHeader ( "ETag" ) ) ;
assertArrayEquals ( responseBody , response . getContentAsByteArray ( ) ) ;
}
@Test
public void filterSendError ( ) throws Exception {
final MockHttpServletRequest request = new MockHttpServletRequest ( "GET" , "/hotels" ) ;
MockHttpServletResponse response = new MockHttpServletResponse ( ) ;
final byte [ ] responseBody = "Hello World" . getBytes ( "UTF-8" ) ;
FilterChain filterChain = new FilterChain ( ) {
@Override
public void doFilter ( ServletRequest filterRequest , ServletResponse filterResponse )
throws IOException , ServletException {
assertEquals ( "Invalid request passed" , request , filterRequest ) ;
FileCopyUtils . copy ( responseBody , filterResponse . getOutputStream ( ) ) ;
( ( HttpServletResponse ) filterResponse ) . sendError ( HttpServletResponse . SC_FORBIDDEN ) ;
}
FilterChain filterChain = ( filterRequest , filterResponse ) - > {
assertEquals ( "Invalid request passed" , request , filterRequest ) ;
FileCopyUtils . copy ( responseBody , filterResponse . getOutputStream ( ) ) ;
( ( HttpServletResponse ) filterResponse ) . sendError ( HttpServletResponse . SC_FORBIDDEN ) ;
} ;
filter . doFilter ( request , response , filterChain ) ;
@ -165,14 +171,10 @@ public class ShallowEtagHeaderFilterTests {
@@ -165,14 +171,10 @@ public class ShallowEtagHeaderFilterTests {
MockHttpServletResponse response = new MockHttpServletResponse ( ) ;
final byte [ ] responseBody = "Hello World" . getBytes ( "UTF-8" ) ;
FilterChain filterChain = new FilterChain ( ) {
@Override
public void doFilter ( ServletRequest filterRequest , ServletResponse filterResponse )
throws IOException , ServletException {
assertEquals ( "Invalid request passed" , request , filterRequest ) ;
FileCopyUtils . copy ( responseBody , filterResponse . getOutputStream ( ) ) ;
( ( HttpServletResponse ) filterResponse ) . sendError ( HttpServletResponse . SC_FORBIDDEN , "ERROR" ) ;
}
FilterChain filterChain = ( filterRequest , filterResponse ) - > {
assertEquals ( "Invalid request passed" , request , filterRequest ) ;
FileCopyUtils . copy ( responseBody , filterResponse . getOutputStream ( ) ) ;
( ( HttpServletResponse ) filterResponse ) . sendError ( HttpServletResponse . SC_FORBIDDEN , "ERROR" ) ;
} ;
filter . doFilter ( request , response , filterChain ) ;
@ -189,14 +191,10 @@ public class ShallowEtagHeaderFilterTests {
@@ -189,14 +191,10 @@ public class ShallowEtagHeaderFilterTests {
MockHttpServletResponse response = new MockHttpServletResponse ( ) ;
final byte [ ] responseBody = "Hello World" . getBytes ( "UTF-8" ) ;
FilterChain filterChain = new FilterChain ( ) {
@Override
public void doFilter ( ServletRequest filterRequest , ServletResponse filterResponse )
throws IOException , ServletException {
assertEquals ( "Invalid request passed" , request , filterRequest ) ;
FileCopyUtils . copy ( responseBody , filterResponse . getOutputStream ( ) ) ;
( ( HttpServletResponse ) filterResponse ) . sendRedirect ( "http://www.google.com" ) ;
}
FilterChain filterChain = ( filterRequest , filterResponse ) - > {
assertEquals ( "Invalid request passed" , request , filterRequest ) ;
FileCopyUtils . copy ( responseBody , filterResponse . getOutputStream ( ) ) ;
( ( HttpServletResponse ) filterResponse ) . sendRedirect ( "http://www.google.com" ) ;
} ;
filter . doFilter ( request , response , filterChain ) ;