/* (c) 2014 - 2016 Open Source Geospatial Foundation - all rights reserved * (c) 2001 - 2013 OpenPlans * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.flow.controller; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import java.io.IOException; import java.util.Properties; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServlet; import org.junit.Test; import org.springframework.mock.web.MockFilterChain; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; public class IpBlacklistFilterTest { @Test public void testFilterIp() throws IOException, ServletException { Properties props = new Properties(); props.put("ip.blacklist", "192.168.1.8,192.168.1.10"); IpBlacklistFilter filter = new IpBlacklistFilter(props); assertNotNull(filter); TestServlet testServlet = new TestServlet(); MockFilterChain filterChain = new MockFilterChain(testServlet, filter); MockHttpServletRequest request = new MockHttpServletRequest(); request.setRemoteAddr("192.168.1.8"); MockHttpServletResponse response = new MockHttpServletResponse(); filterChain.doFilter(request, response); assertFalse(testServlet.wasServiceCalled()); testServlet.reset(); filterChain.reset(); request = new MockHttpServletRequest(); request.setRemoteAddr("192.168.1.9"); response = new MockHttpServletResponse(); filterChain.doFilter(request, response); assertTrue(testServlet.wasServiceCalled()); testServlet.reset(); filterChain.reset(); request = new MockHttpServletRequest(); request.setRemoteAddr("192.168.1.10"); response = new MockHttpServletResponse(); filterChain.doFilter(request, response); assertFalse(testServlet.wasServiceCalled()); testServlet.reset(); filterChain.reset(); } static class TestServlet extends HttpServlet { /** serialVersionUID */ private static final long serialVersionUID = 1L; private boolean serviceCalled = false; public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { serviceCalled = true; } public void reset() { serviceCalled = false; } public boolean wasServiceCalled() { return serviceCalled; } } }