Simplify tests related to SameSite cookie directive support

Closes gh-1147
This commit is contained in:
Vedran Pavic
2018-08-03 22:57:14 +02:00
parent 644239ee14
commit 3f4873f0eb
10 changed files with 39 additions and 470 deletions

View File

@@ -16,20 +16,8 @@
package sample;
import java.io.IOException;
import java.net.HttpCookie;
import java.util.List;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -45,11 +33,8 @@ import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMock
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.core.Ordered;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.http.HttpHeaders;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.htmlunit.webdriver.MockMvcHtmlUnitDriverBuilder;
@@ -135,62 +120,6 @@ public class HttpRedisJsonTest {
redisContainer().getFirstMappedPort());
}
@Bean
public FilterRegistrationBean<SetCookieHandlerFilter> testFilter() {
FilterRegistrationBean<SetCookieHandlerFilter> registrationBean = new FilterRegistrationBean<>(
new SetCookieHandlerFilter());
registrationBean.setOrder(Ordered.HIGHEST_PRECEDENCE);
return registrationBean;
}
}
private static class SetCookieHandlerFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
final HttpServletResponse httpServletResponse = (HttpServletResponse) response;
HttpServletResponseWrapper responseWrapper = new HttpServletResponseWrapper(
httpServletResponse) {
@Override
public void addHeader(String name, String value) {
if (HttpHeaders.SET_COOKIE.equals(name)) {
List<HttpCookie> cookies = HttpCookie.parse(value);
if (!cookies.isEmpty()) {
addCookie(toServletCookie(cookies.get(0)));
}
}
super.setHeader(name, value);
}
};
chain.doFilter(request, responseWrapper);
}
@Override
public void destroy() {
}
private static Cookie toServletCookie(HttpCookie httpCookie) {
Cookie cookie = new Cookie(httpCookie.getName(), httpCookie.getValue());
String domain = httpCookie.getDomain();
if (domain != null) {
cookie.setDomain(domain);
}
cookie.setMaxAge((int) httpCookie.getMaxAge());
cookie.setPath(httpCookie.getPath());
cookie.setSecure(httpCookie.getSecure());
cookie.setHttpOnly(httpCookie.isHttpOnly());
return cookie;
}
}
}