Repository: knox Updated Branches: refs/heads/master a7d55cb5a -> 645f4efa3
KNOX-1479 - Replace Mockito usage with EasyMock Signed-off-by: Kevin Risden <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/knox/repo Commit: http://git-wip-us.apache.org/repos/asf/knox/commit/645f4efa Tree: http://git-wip-us.apache.org/repos/asf/knox/tree/645f4efa Diff: http://git-wip-us.apache.org/repos/asf/knox/diff/645f4efa Branch: refs/heads/master Commit: 645f4efa3a13aa3d25ec0d0c9a9070380bb9a08c Parents: a7d55cb Author: Kevin Risden <[email protected]> Authored: Sat Sep 29 10:51:58 2018 -0400 Committer: Kevin Risden <[email protected]> Committed: Mon Oct 1 10:06:00 2018 -0400 ---------------------------------------------------------------------- gateway-provider-security-pac4j/pom.xml | 5 +- .../gateway/pac4j/MockHttpServletRequest.java | 12 +- .../gateway/pac4j/MockHttpServletResponse.java | 12 +- .../knox/gateway/pac4j/Pac4jProviderTest.java | 148 +++++++++++-------- gateway-provider-security-preauth/pom.xml | 6 - .../federation/DefaultValidatorTest.java | 7 +- .../HeaderPreAuthFederationFilterTest.java | 75 ++++++---- .../provider/federation/IPValidatorTest.java | 30 ++-- .../provider/federation/PreAuthServiceTest.java | 74 ++++++---- pom.xml | 7 - 10 files changed, 216 insertions(+), 160 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/knox/blob/645f4efa/gateway-provider-security-pac4j/pom.xml ---------------------------------------------------------------------- diff --git a/gateway-provider-security-pac4j/pom.xml b/gateway-provider-security-pac4j/pom.xml index 3c23524..76f8f03 100644 --- a/gateway-provider-security-pac4j/pom.xml +++ b/gateway-provider-security-pac4j/pom.xml @@ -187,9 +187,8 @@ </dependency> <dependency> - <groupId>org.mockito</groupId> - <artifactId>mockito-core</artifactId> - <version>1.10.19</version> + <groupId>org.easymock</groupId> + <artifactId>easymock</artifactId> <scope>test</scope> </dependency> http://git-wip-us.apache.org/repos/asf/knox/blob/645f4efa/gateway-provider-security-pac4j/src/test/java/org/apache/knox/gateway/pac4j/MockHttpServletRequest.java ---------------------------------------------------------------------- diff --git a/gateway-provider-security-pac4j/src/test/java/org/apache/knox/gateway/pac4j/MockHttpServletRequest.java b/gateway-provider-security-pac4j/src/test/java/org/apache/knox/gateway/pac4j/MockHttpServletRequest.java index 3b49499..e27efaa 100644 --- a/gateway-provider-security-pac4j/src/test/java/org/apache/knox/gateway/pac4j/MockHttpServletRequest.java +++ b/gateway-provider-security-pac4j/src/test/java/org/apache/knox/gateway/pac4j/MockHttpServletRequest.java @@ -17,6 +17,8 @@ */ package org.apache.knox.gateway.pac4j; +import org.easymock.EasyMock; + import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; @@ -24,8 +26,6 @@ import javax.servlet.http.HttpServletRequestWrapper; import java.util.HashMap; import java.util.Map; -import static org.mockito.Mockito.mock; - public class MockHttpServletRequest extends HttpServletRequestWrapper { private String requestUrl; @@ -36,7 +36,13 @@ public class MockHttpServletRequest extends HttpServletRequestWrapper { private Map<String, Object> attributes = new HashMap<>(); public MockHttpServletRequest() { - super(mock(HttpServletRequest.class)); + super(setupMockRequest()); + } + + private static HttpServletRequest setupMockRequest() { + HttpServletRequest request = EasyMock.createNiceMock(HttpServletRequest.class); + EasyMock.replay(request); + return request; } @Override http://git-wip-us.apache.org/repos/asf/knox/blob/645f4efa/gateway-provider-security-pac4j/src/test/java/org/apache/knox/gateway/pac4j/MockHttpServletResponse.java ---------------------------------------------------------------------- diff --git a/gateway-provider-security-pac4j/src/test/java/org/apache/knox/gateway/pac4j/MockHttpServletResponse.java b/gateway-provider-security-pac4j/src/test/java/org/apache/knox/gateway/pac4j/MockHttpServletResponse.java index 523c030..8d0643d 100644 --- a/gateway-provider-security-pac4j/src/test/java/org/apache/knox/gateway/pac4j/MockHttpServletResponse.java +++ b/gateway-provider-security-pac4j/src/test/java/org/apache/knox/gateway/pac4j/MockHttpServletResponse.java @@ -18,6 +18,8 @@ package org.apache.knox.gateway.pac4j; +import org.easymock.EasyMock; + import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponseWrapper; @@ -27,8 +29,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import static org.mockito.Mockito.mock; - public class MockHttpServletResponse extends HttpServletResponseWrapper { private List<Cookie> cookies = new ArrayList<>(); @@ -37,7 +37,13 @@ public class MockHttpServletResponse extends HttpServletResponseWrapper { private Map<String, String> headers = new HashMap<>(); public MockHttpServletResponse() { - super(mock(HttpServletResponse.class)); + super(setupMockResponse()); + } + + private static HttpServletResponse setupMockResponse() { + HttpServletResponse response = EasyMock.createNiceMock(HttpServletResponse.class); + EasyMock.replay(response); + return response; } @Override http://git-wip-us.apache.org/repos/asf/knox/blob/645f4efa/gateway-provider-security-pac4j/src/test/java/org/apache/knox/gateway/pac4j/Pac4jProviderTest.java ---------------------------------------------------------------------- diff --git a/gateway-provider-security-pac4j/src/test/java/org/apache/knox/gateway/pac4j/Pac4jProviderTest.java b/gateway-provider-security-pac4j/src/test/java/org/apache/knox/gateway/pac4j/Pac4jProviderTest.java index 1d325fe..39a1628 100644 --- a/gateway-provider-security-pac4j/src/test/java/org/apache/knox/gateway/pac4j/Pac4jProviderTest.java +++ b/gateway-provider-security-pac4j/src/test/java/org/apache/knox/gateway/pac4j/Pac4jProviderTest.java @@ -26,6 +26,7 @@ import org.apache.knox.gateway.pac4j.session.KnoxSessionStore; import org.apache.knox.gateway.services.GatewayServices; import org.apache.knox.gateway.services.security.AliasService; import org.apache.knox.gateway.services.security.impl.DefaultCryptoService; +import org.easymock.EasyMock; import org.junit.Test; import org.pac4j.core.client.Clients; import org.pac4j.core.context.Pac4jConstants; @@ -42,8 +43,6 @@ import java.util.Map; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; /** * This class simulates a full authentication process using pac4j. @@ -62,33 +61,40 @@ public class Pac4jProviderTest { @Test public void test() throws Exception { - final AliasService aliasService = mock(AliasService.class); - when(aliasService.getPasswordFromAliasForCluster(CLUSTER_NAME, KnoxSessionStore.PAC4J_PASSWORD, true)).thenReturn(PAC4J_PASSWORD.toCharArray()); - when(aliasService.getPasswordFromAliasForCluster(CLUSTER_NAME, KnoxSessionStore.PAC4J_PASSWORD)).thenReturn(PAC4J_PASSWORD.toCharArray()); + final AliasService aliasService = EasyMock.createNiceMock(AliasService.class); + EasyMock.expect(aliasService.getPasswordFromAliasForCluster(CLUSTER_NAME, KnoxSessionStore.PAC4J_PASSWORD, true)) + .andReturn(PAC4J_PASSWORD.toCharArray()).anyTimes(); + EasyMock.expect(aliasService.getPasswordFromAliasForCluster(CLUSTER_NAME, KnoxSessionStore.PAC4J_PASSWORD)) + .andReturn(PAC4J_PASSWORD.toCharArray()).anyTimes(); + EasyMock.replay(aliasService); final DefaultCryptoService cryptoService = new DefaultCryptoService(); cryptoService.setAliasService(aliasService); - final GatewayServices services = mock(GatewayServices.class); - when(services.getService(GatewayServices.CRYPTO_SERVICE)).thenReturn(cryptoService); - when(services.getService(GatewayServices.ALIAS_SERVICE)).thenReturn(aliasService); + final GatewayServices services = EasyMock.createNiceMock(GatewayServices.class); + EasyMock.expect(services.getService(GatewayServices.CRYPTO_SERVICE)).andReturn(cryptoService); + EasyMock.expect(services.getService(GatewayServices.ALIAS_SERVICE)).andReturn(aliasService); + EasyMock.replay(services); - final ServletContext context = mock(ServletContext.class); - when(context.getAttribute(GatewayServices.GATEWAY_SERVICES_ATTRIBUTE)).thenReturn(services); - when(context.getAttribute(GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE)).thenReturn(CLUSTER_NAME); + final ServletContext context = EasyMock.createNiceMock(ServletContext.class); + EasyMock.expect(context.getAttribute(GatewayServices.GATEWAY_SERVICES_ATTRIBUTE)).andReturn(services); + EasyMock.expect(context.getAttribute(GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE)).andReturn(CLUSTER_NAME); + EasyMock.replay(context); - final FilterConfig config = mock(FilterConfig.class); - when(config.getServletContext()).thenReturn(context); - when(config.getInitParameter(Pac4jDispatcherFilter.PAC4J_CALLBACK_URL)).thenReturn(PAC4J_CALLBACK_URL); - when(config.getInitParameter("clientName")).thenReturn(Pac4jDispatcherFilter.TEST_BASIC_AUTH); + final FilterConfig config = EasyMock.createNiceMock(FilterConfig.class); + EasyMock.expect(config.getServletContext()).andReturn(context); + EasyMock.expect(config.getInitParameter(Pac4jDispatcherFilter.PAC4J_CALLBACK_URL)).andReturn(PAC4J_CALLBACK_URL); + EasyMock.expect(config.getInitParameter("clientName")).andReturn(Pac4jDispatcherFilter.TEST_BASIC_AUTH); + EasyMock.replay(config); final Pac4jDispatcherFilter dispatcher = new Pac4jDispatcherFilter(); dispatcher.init(config); final Pac4jIdentityAdapter adapter = new Pac4jIdentityAdapter(); adapter.init(config); - Pac4jIdentityAdapter.setAuditor(mock(Auditor.class)); - final AuditService auditService = mock(AuditService.class); - when(auditService.getContext()).thenReturn(mock(AuditContext.class)); + Pac4jIdentityAdapter.setAuditor(EasyMock.createNiceMock(Auditor.class)); + final AuditService auditService = EasyMock.createNiceMock(AuditService.class); + EasyMock.expect(auditService.getContext()).andReturn(EasyMock.createNiceMock(AuditContext.class)); + EasyMock.replay(auditService); Pac4jIdentityAdapter.setAuditService(auditService); // step 1: call the KnoxSSO service with an original url pointing to an Hadoop service (redirected by the SSOCookieProvider) @@ -97,7 +103,7 @@ public class Pac4jProviderTest { request.setCookies(new Cookie[0]); request.setServerName(LOCALHOST); MockHttpServletResponse response = new MockHttpServletResponse(); - FilterChain filterChain = mock(FilterChain.class); + FilterChain filterChain = EasyMock.createNiceMock(FilterChain.class); dispatcher.doFilter(request, response, filterChain); // it should be a redirection to the idp topology assertEquals(302, response.getStatus()); @@ -117,7 +123,7 @@ public class Pac4jProviderTest { request.addHeader("Authorization", "Basic amxlbGV1OmpsZWxldQ=="); request.setServerName(LOCALHOST); response = new MockHttpServletResponse(); - filterChain = mock(FilterChain.class); + filterChain = EasyMock.createNiceMock(FilterChain.class); dispatcher.doFilter(request, response, filterChain); // it should be a redirection to the original url assertEquals(302, response.getStatus()); @@ -135,11 +141,11 @@ public class Pac4jProviderTest { // step 3: turn pac4j identity into KnoxSSO identity request = new MockHttpServletRequest(); - request.setCookies(cookies.toArray(new Cookie[cookies.size()])); + request.setCookies(cookies.toArray(new Cookie[0])); request.setRequestURL(KNOXSSO_SERVICE_URL + "?" + ORIGINAL_URL + "=" + HADOOP_SERVICE_URL); request.setServerName(LOCALHOST); response = new MockHttpServletResponse(); - filterChain = mock(FilterChain.class); + filterChain = EasyMock.createNiceMock(FilterChain.class); dispatcher.doFilter(request, response, filterChain); assertEquals(0, response.getStatus()); adapter.doFilter(request, response, filterChain); @@ -154,34 +160,41 @@ public class Pac4jProviderTest { @Test public void testValidIdAttribute() throws Exception { - final AliasService aliasService = mock(AliasService.class); - when(aliasService.getPasswordFromAliasForCluster(CLUSTER_NAME, KnoxSessionStore.PAC4J_PASSWORD, true)).thenReturn(PAC4J_PASSWORD.toCharArray()); - when(aliasService.getPasswordFromAliasForCluster(CLUSTER_NAME, KnoxSessionStore.PAC4J_PASSWORD)).thenReturn(PAC4J_PASSWORD.toCharArray()); + final AliasService aliasService = EasyMock.createNiceMock(AliasService.class); + EasyMock.expect(aliasService.getPasswordFromAliasForCluster(CLUSTER_NAME, KnoxSessionStore.PAC4J_PASSWORD, true)) + .andReturn(PAC4J_PASSWORD.toCharArray()).anyTimes(); + EasyMock.expect(aliasService.getPasswordFromAliasForCluster(CLUSTER_NAME, KnoxSessionStore.PAC4J_PASSWORD)) + .andReturn(PAC4J_PASSWORD.toCharArray()).anyTimes(); + EasyMock.replay(aliasService); final DefaultCryptoService cryptoService = new DefaultCryptoService(); cryptoService.setAliasService(aliasService); - final GatewayServices services = mock(GatewayServices.class); - when(services.getService(GatewayServices.CRYPTO_SERVICE)).thenReturn(cryptoService); - when(services.getService(GatewayServices.ALIAS_SERVICE)).thenReturn(aliasService); + final GatewayServices services = EasyMock.createNiceMock(GatewayServices.class); + EasyMock.expect(services.getService(GatewayServices.CRYPTO_SERVICE)).andReturn(cryptoService); + EasyMock.expect(services.getService(GatewayServices.ALIAS_SERVICE)).andReturn(aliasService); + EasyMock.replay(services); - final ServletContext context = mock(ServletContext.class); - when(context.getAttribute(GatewayServices.GATEWAY_SERVICES_ATTRIBUTE)).thenReturn(services); - when(context.getAttribute(GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE)).thenReturn(CLUSTER_NAME); + final ServletContext context = EasyMock.createNiceMock(ServletContext.class); + EasyMock.expect(context.getAttribute(GatewayServices.GATEWAY_SERVICES_ATTRIBUTE)).andReturn(services); + EasyMock.expect(context.getAttribute(GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE)).andReturn(CLUSTER_NAME); + EasyMock.replay(context); - final FilterConfig config = mock(FilterConfig.class); - when(config.getServletContext()).thenReturn(context); - when(config.getInitParameter(Pac4jDispatcherFilter.PAC4J_CALLBACK_URL)).thenReturn(PAC4J_CALLBACK_URL); - when(config.getInitParameter("clientName")).thenReturn(Pac4jDispatcherFilter.TEST_BASIC_AUTH); - when(config.getInitParameter(Pac4jIdentityAdapter.PAC4J_ID_ATTRIBUTE)).thenReturn("username"); + final FilterConfig config = EasyMock.createNiceMock(FilterConfig.class); + EasyMock.expect(config.getServletContext()).andReturn(context); + EasyMock.expect(config.getInitParameter(Pac4jDispatcherFilter.PAC4J_CALLBACK_URL)).andReturn(PAC4J_CALLBACK_URL); + EasyMock.expect(config.getInitParameter("clientName")).andReturn(Pac4jDispatcherFilter.TEST_BASIC_AUTH); + EasyMock.expect(config.getInitParameter(Pac4jIdentityAdapter.PAC4J_ID_ATTRIBUTE)).andReturn("username"); + EasyMock.replay(config); final Pac4jDispatcherFilter dispatcher = new Pac4jDispatcherFilter(); dispatcher.init(config); final Pac4jIdentityAdapter adapter = new Pac4jIdentityAdapter(); adapter.init(config); - Pac4jIdentityAdapter.setAuditor(mock(Auditor.class)); - final AuditService auditService = mock(AuditService.class); - when(auditService.getContext()).thenReturn(mock(AuditContext.class)); + Pac4jIdentityAdapter.setAuditor(EasyMock.createNiceMock(Auditor.class)); + final AuditService auditService = EasyMock.createNiceMock(AuditService.class); + EasyMock.expect(auditService.getContext()).andReturn(EasyMock.createNiceMock(AuditContext.class)); + EasyMock.replay(auditService); Pac4jIdentityAdapter.setAuditService(auditService); // step 1: call the KnoxSSO service with an original url pointing to an Hadoop service (redirected by the SSOCookieProvider) @@ -190,7 +203,7 @@ public class Pac4jProviderTest { request.setCookies(new Cookie[0]); request.setServerName(LOCALHOST); MockHttpServletResponse response = new MockHttpServletResponse(); - FilterChain filterChain = mock(FilterChain.class); + FilterChain filterChain = EasyMock.createNiceMock(FilterChain.class); dispatcher.doFilter(request, response, filterChain); // it should be a redirection to the idp topology assertEquals(302, response.getStatus()); @@ -210,7 +223,7 @@ public class Pac4jProviderTest { request.addHeader("Authorization", "Basic amxlbGV1OmpsZWxldQ=="); request.setServerName(LOCALHOST); response = new MockHttpServletResponse(); - filterChain = mock(FilterChain.class); + filterChain = EasyMock.createNiceMock(FilterChain.class); dispatcher.doFilter(request, response, filterChain); // it should be a redirection to the original url assertEquals(302, response.getStatus()); @@ -228,11 +241,11 @@ public class Pac4jProviderTest { // step 3: turn pac4j identity into KnoxSSO identity request = new MockHttpServletRequest(); - request.setCookies(cookies.toArray(new Cookie[cookies.size()])); + request.setCookies(cookies.toArray(new Cookie[0])); request.setRequestURL(KNOXSSO_SERVICE_URL + "?" + ORIGINAL_URL + "=" + HADOOP_SERVICE_URL); request.setServerName(LOCALHOST); response = new MockHttpServletResponse(); - filterChain = mock(FilterChain.class); + filterChain = EasyMock.createNiceMock(FilterChain.class); dispatcher.doFilter(request, response, filterChain); assertEquals(0, response.getStatus()); adapter.doFilter(request, response, filterChain); @@ -246,34 +259,41 @@ public class Pac4jProviderTest { } @Test public void testInvalidIdAttribute() throws Exception { - final AliasService aliasService = mock(AliasService.class); - when(aliasService.getPasswordFromAliasForCluster(CLUSTER_NAME, KnoxSessionStore.PAC4J_PASSWORD, true)).thenReturn(PAC4J_PASSWORD.toCharArray()); - when(aliasService.getPasswordFromAliasForCluster(CLUSTER_NAME, KnoxSessionStore.PAC4J_PASSWORD)).thenReturn(PAC4J_PASSWORD.toCharArray()); + final AliasService aliasService = EasyMock.createNiceMock(AliasService.class); + EasyMock.expect(aliasService.getPasswordFromAliasForCluster(CLUSTER_NAME, KnoxSessionStore.PAC4J_PASSWORD, true)) + .andReturn(PAC4J_PASSWORD.toCharArray()).anyTimes(); + EasyMock.expect(aliasService.getPasswordFromAliasForCluster(CLUSTER_NAME, KnoxSessionStore.PAC4J_PASSWORD)) + .andReturn(PAC4J_PASSWORD.toCharArray()).anyTimes(); + EasyMock.replay(aliasService); final DefaultCryptoService cryptoService = new DefaultCryptoService(); cryptoService.setAliasService(aliasService); - final GatewayServices services = mock(GatewayServices.class); - when(services.getService(GatewayServices.CRYPTO_SERVICE)).thenReturn(cryptoService); - when(services.getService(GatewayServices.ALIAS_SERVICE)).thenReturn(aliasService); + final GatewayServices services = EasyMock.createNiceMock(GatewayServices.class); + EasyMock.expect(services.getService(GatewayServices.CRYPTO_SERVICE)).andReturn(cryptoService); + EasyMock.expect(services.getService(GatewayServices.ALIAS_SERVICE)).andReturn(aliasService); + EasyMock.replay(services); - final ServletContext context = mock(ServletContext.class); - when(context.getAttribute(GatewayServices.GATEWAY_SERVICES_ATTRIBUTE)).thenReturn(services); - when(context.getAttribute(GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE)).thenReturn(CLUSTER_NAME); + final ServletContext context = EasyMock.createNiceMock(ServletContext.class); + EasyMock.expect(context.getAttribute(GatewayServices.GATEWAY_SERVICES_ATTRIBUTE)).andReturn(services); + EasyMock.expect(context.getAttribute(GatewayServices.GATEWAY_CLUSTER_ATTRIBUTE)).andReturn(CLUSTER_NAME); + EasyMock.replay(context); - final FilterConfig config = mock(FilterConfig.class); - when(config.getServletContext()).thenReturn(context); - when(config.getInitParameter(Pac4jDispatcherFilter.PAC4J_CALLBACK_URL)).thenReturn(PAC4J_CALLBACK_URL); - when(config.getInitParameter("clientName")).thenReturn(Pac4jDispatcherFilter.TEST_BASIC_AUTH); - when(config.getInitParameter(Pac4jIdentityAdapter.PAC4J_ID_ATTRIBUTE)).thenReturn("larry"); + final FilterConfig config = EasyMock.createNiceMock(FilterConfig.class); + EasyMock.expect(config.getServletContext()).andReturn(context); + EasyMock.expect(config.getInitParameter(Pac4jDispatcherFilter.PAC4J_CALLBACK_URL)).andReturn(PAC4J_CALLBACK_URL); + EasyMock.expect(config.getInitParameter("clientName")).andReturn(Pac4jDispatcherFilter.TEST_BASIC_AUTH); + EasyMock.expect(config.getInitParameter(Pac4jIdentityAdapter.PAC4J_ID_ATTRIBUTE)).andReturn("larry"); + EasyMock.replay(config); final Pac4jDispatcherFilter dispatcher = new Pac4jDispatcherFilter(); dispatcher.init(config); final Pac4jIdentityAdapter adapter = new Pac4jIdentityAdapter(); adapter.init(config); - Pac4jIdentityAdapter.setAuditor(mock(Auditor.class)); - final AuditService auditService = mock(AuditService.class); - when(auditService.getContext()).thenReturn(mock(AuditContext.class)); + Pac4jIdentityAdapter.setAuditor(EasyMock.createNiceMock(Auditor.class)); + final AuditService auditService = EasyMock.createNiceMock(AuditService.class); + EasyMock.expect(auditService.getContext()).andReturn(EasyMock.createNiceMock(AuditContext.class)); + EasyMock.replay(auditService); Pac4jIdentityAdapter.setAuditService(auditService); // step 1: call the KnoxSSO service with an original url pointing to an Hadoop service (redirected by the SSOCookieProvider) @@ -282,7 +302,7 @@ public class Pac4jProviderTest { request.setCookies(new Cookie[0]); request.setServerName(LOCALHOST); MockHttpServletResponse response = new MockHttpServletResponse(); - FilterChain filterChain = mock(FilterChain.class); + FilterChain filterChain = EasyMock.createNiceMock(FilterChain.class); dispatcher.doFilter(request, response, filterChain); // it should be a redirection to the idp topology assertEquals(302, response.getStatus()); @@ -302,7 +322,7 @@ public class Pac4jProviderTest { request.addHeader("Authorization", "Basic amxlbGV1OmpsZWxldQ=="); request.setServerName(LOCALHOST); response = new MockHttpServletResponse(); - filterChain = mock(FilterChain.class); + filterChain = EasyMock.createNiceMock(FilterChain.class); dispatcher.doFilter(request, response, filterChain); // it should be a redirection to the original url assertEquals(302, response.getStatus()); @@ -320,11 +340,11 @@ public class Pac4jProviderTest { // step 3: turn pac4j identity into KnoxSSO identity request = new MockHttpServletRequest(); - request.setCookies(cookies.toArray(new Cookie[cookies.size()])); + request.setCookies(cookies.toArray(new Cookie[0])); request.setRequestURL(KNOXSSO_SERVICE_URL + "?" + ORIGINAL_URL + "=" + HADOOP_SERVICE_URL); request.setServerName(LOCALHOST); response = new MockHttpServletResponse(); - filterChain = mock(FilterChain.class); + filterChain = EasyMock.createNiceMock(FilterChain.class); dispatcher.doFilter(request, response, filterChain); assertEquals(0, response.getStatus()); adapter.doFilter(request, response, filterChain); http://git-wip-us.apache.org/repos/asf/knox/blob/645f4efa/gateway-provider-security-preauth/pom.xml ---------------------------------------------------------------------- diff --git a/gateway-provider-security-preauth/pom.xml b/gateway-provider-security-preauth/pom.xml index 692ba4d..aae1d89 100644 --- a/gateway-provider-security-preauth/pom.xml +++ b/gateway-provider-security-preauth/pom.xml @@ -65,12 +65,6 @@ </dependency> <dependency> - <groupId>org.mockito</groupId> - <artifactId>mockito-core</artifactId> - <scope>test</scope> - </dependency> - - <dependency> <groupId>org.apache.knox</groupId> <artifactId>gateway-server</artifactId> </dependency> http://git-wip-us.apache.org/repos/asf/knox/blob/645f4efa/gateway-provider-security-preauth/src/test/java/org/apache/knox/gateway/provider/federation/DefaultValidatorTest.java ---------------------------------------------------------------------- diff --git a/gateway-provider-security-preauth/src/test/java/org/apache/knox/gateway/provider/federation/DefaultValidatorTest.java b/gateway-provider-security-preauth/src/test/java/org/apache/knox/gateway/provider/federation/DefaultValidatorTest.java index d80d90c..a4e148b 100644 --- a/gateway-provider-security-preauth/src/test/java/org/apache/knox/gateway/provider/federation/DefaultValidatorTest.java +++ b/gateway-provider-security-preauth/src/test/java/org/apache/knox/gateway/provider/federation/DefaultValidatorTest.java @@ -18,18 +18,17 @@ package org.apache.knox.gateway.provider.federation; import org.apache.knox.gateway.preauth.filter.DefaultValidator; +import org.easymock.EasyMock; import org.junit.Test; -import static org.mockito.Mockito.mock; - import javax.servlet.FilterConfig; import javax.servlet.http.HttpServletRequest; public class DefaultValidatorTest extends org.junit.Assert { @Test public void testDefault() throws Exception { - final FilterConfig filterConfig = mock(FilterConfig.class); - final HttpServletRequest request = mock(HttpServletRequest.class); + final FilterConfig filterConfig = EasyMock.createMock(FilterConfig.class); + final HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class); DefaultValidator dv = new DefaultValidator(); assertTrue(dv.validate(request, filterConfig)); } http://git-wip-us.apache.org/repos/asf/knox/blob/645f4efa/gateway-provider-security-preauth/src/test/java/org/apache/knox/gateway/provider/federation/HeaderPreAuthFederationFilterTest.java ---------------------------------------------------------------------- diff --git a/gateway-provider-security-preauth/src/test/java/org/apache/knox/gateway/provider/federation/HeaderPreAuthFederationFilterTest.java b/gateway-provider-security-preauth/src/test/java/org/apache/knox/gateway/provider/federation/HeaderPreAuthFederationFilterTest.java index 7966f00..1751509 100644 --- a/gateway-provider-security-preauth/src/test/java/org/apache/knox/gateway/provider/federation/HeaderPreAuthFederationFilterTest.java +++ b/gateway-provider-security-preauth/src/test/java/org/apache/knox/gateway/provider/federation/HeaderPreAuthFederationFilterTest.java @@ -21,8 +21,8 @@ import org.apache.knox.gateway.preauth.filter.DefaultValidator; import org.apache.knox.gateway.preauth.filter.HeaderPreAuthFederationFilter; import org.apache.knox.gateway.preauth.filter.IPValidator; import org.apache.knox.gateway.preauth.filter.PreAuthService; -import org.apache.knox.gateway.preauth.filter.PreAuthValidationException; import org.apache.knox.gateway.preauth.filter.PreAuthValidator; +import org.easymock.EasyMock; import org.junit.Test; import javax.servlet.FilterConfig; @@ -31,18 +31,18 @@ import javax.servlet.http.HttpServletRequest; import java.util.List; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - public class HeaderPreAuthFederationFilterTest extends org.junit.Assert { @Test - public void testDefaultValidator() throws ServletException, PreAuthValidationException { + public void testDefaultValidator() throws ServletException { HeaderPreAuthFederationFilter hpaff = new HeaderPreAuthFederationFilter(); - final HttpServletRequest request = mock(HttpServletRequest.class); - final FilterConfig filterConfig = mock(FilterConfig.class); - when(filterConfig.getInitParameter(PreAuthService.VALIDATION_METHOD_PARAM)).thenReturn + final HttpServletRequest request = EasyMock.createNiceMock(HttpServletRequest.class); + final FilterConfig filterConfig = EasyMock.createNiceMock(FilterConfig.class); + EasyMock.expect(filterConfig.getInitParameter(PreAuthService.VALIDATION_METHOD_PARAM)).andReturn (DefaultValidator.DEFAULT_VALIDATION_METHOD_VALUE); + EasyMock.replay(filterConfig); + EasyMock.replay(request); + hpaff.init(filterConfig); List<PreAuthValidator> validators = hpaff.getValidators(); assertEquals(validators.size(), 1); @@ -51,63 +51,80 @@ public class HeaderPreAuthFederationFilterTest extends org.junit.Assert { } @Test - public void testIPValidator() throws ServletException, PreAuthValidationException { + public void testIPValidator() throws ServletException { HeaderPreAuthFederationFilter hpaff = new HeaderPreAuthFederationFilter(); - final HttpServletRequest request = mock(HttpServletRequest.class); - when(request.getRemoteAddr()).thenReturn("10.1.23.42"); - final FilterConfig filterConfig = mock(FilterConfig.class); - when(filterConfig.getInitParameter(IPValidator.IP_ADDRESSES_PARAM)).thenReturn("5.4.3.2,10.1.23.42"); - when(filterConfig.getInitParameter(PreAuthService.VALIDATION_METHOD_PARAM)).thenReturn(IPValidator - .IP_VALIDATION_METHOD_VALUE); + + final FilterConfig filterConfig = EasyMock.createNiceMock(FilterConfig.class); + EasyMock.expect(filterConfig.getInitParameter(IPValidator.IP_ADDRESSES_PARAM)) + .andReturn("5.4.3.2,10.1.23.42").anyTimes(); + EasyMock.expect(filterConfig.getInitParameter(PreAuthService.VALIDATION_METHOD_PARAM)) + .andReturn(IPValidator.IP_VALIDATION_METHOD_VALUE).anyTimes(); + EasyMock.replay(filterConfig); + + final HttpServletRequest request = EasyMock.createNiceMock(HttpServletRequest.class); + EasyMock.expect(request.getRemoteAddr()).andReturn("10.1.23.42"); + EasyMock.replay(request); + hpaff.init(filterConfig); List<PreAuthValidator> validators = hpaff.getValidators(); assertEquals(validators.size(), 1); assertEquals(validators.get(0).getName(), IPValidator.IP_VALIDATION_METHOD_VALUE); assertTrue(PreAuthService.validate(request, filterConfig, validators)); + //Negative testing - when(request.getRemoteAddr()).thenReturn("10.10.22.33"); + EasyMock.reset(request); + EasyMock.expect(request.getRemoteAddr()).andReturn("10.10.22.33"); + EasyMock.replay(request); assertFalse(PreAuthService.validate(request, filterConfig, validators)); } @Test - public void testCustomValidatorPositive() throws ServletException, PreAuthValidationException { + public void testCustomValidatorPositive() throws ServletException { HeaderPreAuthFederationFilter hpaff = new HeaderPreAuthFederationFilter(); - final HttpServletRequest request = mock(HttpServletRequest.class); - final FilterConfig filterConfig = mock(FilterConfig.class); - when(filterConfig.getInitParameter(PreAuthService.VALIDATION_METHOD_PARAM)).thenReturn + final HttpServletRequest request = EasyMock.createNiceMock(HttpServletRequest.class); + final FilterConfig filterConfig = EasyMock.createNiceMock(FilterConfig.class); + EasyMock.expect(filterConfig.getInitParameter(PreAuthService.VALIDATION_METHOD_PARAM)).andReturn (DummyValidator.NAME); + EasyMock.replay(request); + EasyMock.replay(filterConfig); hpaff.init(filterConfig); List<PreAuthValidator> validators = hpaff.getValidators(); assertEquals(validators.size(), 1); assertEquals(validators.get(0).getName(), DummyValidator.NAME); //Positive test - when(request.getHeader("CUSTOM_TOKEN")).thenReturn("HelloWorld"); + EasyMock.reset(request); + EasyMock.expect(request.getHeader("CUSTOM_TOKEN")).andReturn("HelloWorld"); + EasyMock.replay(request); assertTrue(PreAuthService.validate(request, filterConfig, validators)); } @Test - public void testCustomValidatorNegative() throws ServletException, PreAuthValidationException { + public void testCustomValidatorNegative() throws ServletException { HeaderPreAuthFederationFilter hpaff = new HeaderPreAuthFederationFilter(); - final HttpServletRequest request = mock(HttpServletRequest.class); - final FilterConfig filterConfig = mock(FilterConfig.class); - when(filterConfig.getInitParameter(PreAuthService.VALIDATION_METHOD_PARAM)).thenReturn + final HttpServletRequest request = EasyMock.createNiceMock(HttpServletRequest.class); + final FilterConfig filterConfig = EasyMock.createNiceMock(FilterConfig.class); + EasyMock.expect(filterConfig.getInitParameter(PreAuthService.VALIDATION_METHOD_PARAM)).andReturn (DummyValidator.NAME); + EasyMock.replay(request); + EasyMock.replay(filterConfig); hpaff.init(filterConfig); List<PreAuthValidator> validators = hpaff.getValidators(); assertEquals(validators.size(), 1); assertEquals(validators.get(0).getName(), DummyValidator.NAME); - when(request.getHeader("CUSTOM_TOKEN")).thenReturn("NOTHelloWorld"); + EasyMock.reset(request); + EasyMock.expect(request.getHeader("CUSTOM_TOKEN")).andReturn("NOTHelloWorld"); + EasyMock.replay(request); assertFalse(PreAuthService.validate(request, filterConfig, validators)); } public static class DummyValidator implements PreAuthValidator { - public static String NAME = "DummyValidator"; + static String NAME = "DummyValidator"; public DummyValidator() { @@ -117,11 +134,9 @@ public class HeaderPreAuthFederationFilterTest extends org.junit.Assert { * @param httpRequest * @param filterConfig * @return true if validated, otherwise false - * @throws PreAuthValidationException */ @Override - public boolean validate(HttpServletRequest httpRequest, FilterConfig filterConfig) throws - PreAuthValidationException { + public boolean validate(HttpServletRequest httpRequest, FilterConfig filterConfig) { String token = httpRequest.getHeader("CUSTOM_TOKEN"); return token.equalsIgnoreCase("HelloWorld"); } http://git-wip-us.apache.org/repos/asf/knox/blob/645f4efa/gateway-provider-security-preauth/src/test/java/org/apache/knox/gateway/provider/federation/IPValidatorTest.java ---------------------------------------------------------------------- diff --git a/gateway-provider-security-preauth/src/test/java/org/apache/knox/gateway/provider/federation/IPValidatorTest.java b/gateway-provider-security-preauth/src/test/java/org/apache/knox/gateway/provider/federation/IPValidatorTest.java index b1e9339..1587be8 100644 --- a/gateway-provider-security-preauth/src/test/java/org/apache/knox/gateway/provider/federation/IPValidatorTest.java +++ b/gateway-provider-security-preauth/src/test/java/org/apache/knox/gateway/provider/federation/IPValidatorTest.java @@ -19,14 +19,12 @@ package org.apache.knox.gateway.provider.federation; import org.apache.knox.gateway.preauth.filter.IPValidator; import org.apache.knox.gateway.preauth.filter.PreAuthValidationException; +import org.easymock.EasyMock; import org.junit.Test; import javax.servlet.FilterConfig; import javax.servlet.http.HttpServletRequest; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - public class IPValidatorTest extends org.junit.Assert { @Test @@ -39,20 +37,30 @@ public class IPValidatorTest extends org.junit.Assert { @Test public void testIPAddressPositive() throws PreAuthValidationException { IPValidator ipv = new IPValidator(); - final HttpServletRequest request = mock(HttpServletRequest.class); - when(request.getRemoteAddr()).thenReturn("10.1.23.42"); - final FilterConfig filterConfig = mock(FilterConfig.class); - when(filterConfig.getInitParameter(IPValidator.IP_ADDRESSES_PARAM)).thenReturn("5.4.3.2,10.1.23.42"); + + final FilterConfig filterConfig = EasyMock.createMock(FilterConfig.class); + EasyMock.expect(filterConfig.getInitParameter(IPValidator.IP_ADDRESSES_PARAM)).andReturn("5.4.3.2,10.1.23.42"); + EasyMock.replay(filterConfig); + + final HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class); + EasyMock.expect(request.getRemoteAddr()).andReturn("10.1.23.42"); + EasyMock.replay(request); + assertTrue(ipv.validate(request, filterConfig)); } @Test public void testIPAddressNegative() throws PreAuthValidationException { IPValidator ipv = new IPValidator(); - final HttpServletRequest request = mock(HttpServletRequest.class); - when(request.getRemoteAddr()).thenReturn("10.1.23.42"); - final FilterConfig filterConfig = mock(FilterConfig.class); - when(filterConfig.getInitParameter(IPValidator.IP_ADDRESSES_PARAM)).thenReturn("10.22.34.56"); + + final FilterConfig filterConfig = EasyMock.createMock(FilterConfig.class); + EasyMock.expect(filterConfig.getInitParameter(IPValidator.IP_ADDRESSES_PARAM)).andReturn("10.22.34.56"); + EasyMock.replay(filterConfig); + + final HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class); + EasyMock.expect(request.getRemoteAddr()).andReturn("10.1.23.42"); + EasyMock.replay(request); + assertFalse(ipv.validate(request, filterConfig)); } http://git-wip-us.apache.org/repos/asf/knox/blob/645f4efa/gateway-provider-security-preauth/src/test/java/org/apache/knox/gateway/provider/federation/PreAuthServiceTest.java ---------------------------------------------------------------------- diff --git a/gateway-provider-security-preauth/src/test/java/org/apache/knox/gateway/provider/federation/PreAuthServiceTest.java b/gateway-provider-security-preauth/src/test/java/org/apache/knox/gateway/provider/federation/PreAuthServiceTest.java index ba71400..cae69ee 100644 --- a/gateway-provider-security-preauth/src/test/java/org/apache/knox/gateway/provider/federation/PreAuthServiceTest.java +++ b/gateway-provider-security-preauth/src/test/java/org/apache/knox/gateway/provider/federation/PreAuthServiceTest.java @@ -20,8 +20,8 @@ package org.apache.knox.gateway.provider.federation; import org.apache.knox.gateway.preauth.filter.DefaultValidator; import org.apache.knox.gateway.preauth.filter.IPValidator; import org.apache.knox.gateway.preauth.filter.PreAuthService; -import org.apache.knox.gateway.preauth.filter.PreAuthValidationException; import org.apache.knox.gateway.preauth.filter.PreAuthValidator; +import org.easymock.EasyMock; import org.junit.Test; import javax.servlet.FilterConfig; @@ -31,9 +31,6 @@ import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - public class PreAuthServiceTest extends org.junit.Assert { @Test @@ -49,12 +46,15 @@ public class PreAuthServiceTest extends org.junit.Assert { } @Test - public void testDefaultValidator() throws ServletException, - PreAuthValidationException { - final HttpServletRequest request = mock(HttpServletRequest.class); - final FilterConfig filterConfig = mock(FilterConfig.class); - when(filterConfig.getInitParameter(PreAuthService.VALIDATION_METHOD_PARAM)).thenReturn - (DefaultValidator.DEFAULT_VALIDATION_METHOD_VALUE); + public void testDefaultValidator() throws ServletException { + final FilterConfig filterConfig = EasyMock.createMock(FilterConfig.class); + EasyMock.expect(filterConfig.getInitParameter(PreAuthService.VALIDATION_METHOD_PARAM)) + .andReturn(DefaultValidator.DEFAULT_VALIDATION_METHOD_VALUE); + EasyMock.replay(filterConfig); + + final HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class); + EasyMock.replay(request); + List<PreAuthValidator> validators = PreAuthService.getValidators(filterConfig); assertEquals(validators.size(), 1); assertEquals(validators.get(0).getName(), DefaultValidator.DEFAULT_VALIDATION_METHOD_VALUE); @@ -62,30 +62,43 @@ public class PreAuthServiceTest extends org.junit.Assert { } @Test - public void testIPValidator() throws ServletException, PreAuthValidationException { - final HttpServletRequest request = mock(HttpServletRequest.class); - when(request.getRemoteAddr()).thenReturn("10.1.23.42"); - final FilterConfig filterConfig = mock(FilterConfig.class); - when(filterConfig.getInitParameter(IPValidator.IP_ADDRESSES_PARAM)).thenReturn("5.4.3.2,10.1.23.42"); - when(filterConfig.getInitParameter(PreAuthService.VALIDATION_METHOD_PARAM)).thenReturn(IPValidator - .IP_VALIDATION_METHOD_VALUE); + public void testIPValidator() throws ServletException { + final HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class); + EasyMock.expect(request.getRemoteAddr()).andReturn("10.1.23.42"); + EasyMock.replay(request); + + final FilterConfig filterConfig = EasyMock.createMock(FilterConfig.class); + EasyMock.expect(filterConfig.getInitParameter(IPValidator.IP_ADDRESSES_PARAM)) + .andReturn("5.4.3.2,10.1.23.42").anyTimes(); + EasyMock.expect(filterConfig.getInitParameter(PreAuthService.VALIDATION_METHOD_PARAM)) + .andReturn(IPValidator.IP_VALIDATION_METHOD_VALUE).anyTimes(); + EasyMock.replay(filterConfig); + List<PreAuthValidator> validators = PreAuthService.getValidators(filterConfig); assertEquals(validators.size(), 1); assertEquals(validators.get(0).getName(), IPValidator.IP_VALIDATION_METHOD_VALUE); assertTrue(PreAuthService.validate(request, filterConfig, validators)); + //Negative testing - when(request.getRemoteAddr()).thenReturn("10.10.22.33"); + EasyMock.reset(request); + EasyMock.expect(request.getRemoteAddr()).andReturn("10.10.22.33"); + EasyMock.replay(request); assertFalse(PreAuthService.validate(request, filterConfig, validators)); } @Test - public void testMultipleValidatorsPositive() throws ServletException, PreAuthValidationException { - final HttpServletRequest request = mock(HttpServletRequest.class); - when(request.getRemoteAddr()).thenReturn("10.1.23.42"); - final FilterConfig filterConfig = mock(FilterConfig.class); - when(filterConfig.getInitParameter(IPValidator.IP_ADDRESSES_PARAM)).thenReturn("5.4.3.2,10.1.23.42"); - when(filterConfig.getInitParameter(PreAuthService.VALIDATION_METHOD_PARAM)).thenReturn - (DefaultValidator.DEFAULT_VALIDATION_METHOD_VALUE + "," + IPValidator.IP_VALIDATION_METHOD_VALUE ); + public void testMultipleValidatorsPositive() throws ServletException { + final HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class); + EasyMock.expect(request.getRemoteAddr()).andReturn("10.1.23.42"); + EasyMock.replay(request); + + final FilterConfig filterConfig = EasyMock.createMock(FilterConfig.class); + EasyMock.expect(filterConfig.getInitParameter(IPValidator.IP_ADDRESSES_PARAM)) + .andReturn("5.4.3.2,10.1.23.42").anyTimes(); + EasyMock.expect(filterConfig.getInitParameter(PreAuthService.VALIDATION_METHOD_PARAM)) + .andReturn(DefaultValidator.DEFAULT_VALIDATION_METHOD_VALUE + "," + IPValidator.IP_VALIDATION_METHOD_VALUE).anyTimes(); + EasyMock.replay(filterConfig); + List<PreAuthValidator> validators = PreAuthService.getValidators(filterConfig); assertEquals(validators.size(), 2); assertEquals(validators.get(0).getName(), DefaultValidator.DEFAULT_VALIDATION_METHOD_VALUE); @@ -93,16 +106,19 @@ public class PreAuthServiceTest extends org.junit.Assert { assertTrue(PreAuthService.validate(request, filterConfig, validators)); //Negative testing - when(request.getRemoteAddr()).thenReturn("10.10.22.33"); + EasyMock.reset(request); + EasyMock.expect(request.getRemoteAddr()).andReturn("10.10.22.33"); + EasyMock.replay(request); assertFalse(PreAuthService.validate(request, filterConfig, validators)); } @Test - public void testMultipleValidatorsNegative() throws ServletException, PreAuthValidationException { - final FilterConfig filterConfig = mock(FilterConfig.class); - when(filterConfig.getInitParameter(PreAuthService.VALIDATION_METHOD_PARAM)).thenReturn + public void testMultipleValidatorsNegative() { + final FilterConfig filterConfig = EasyMock.createMock(FilterConfig.class); + EasyMock.expect(filterConfig.getInitParameter(PreAuthService.VALIDATION_METHOD_PARAM)).andReturn (DefaultValidator.DEFAULT_VALIDATION_METHOD_VALUE + ", NOT_EXISTED_VALIDATOR" ); + EasyMock.replay(filterConfig); try { PreAuthService.getValidators(filterConfig); fail("Should throw exception due to invalid validator"); http://git-wip-us.apache.org/repos/asf/knox/blob/645f4efa/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index b4bd4cf..b321f09 100644 --- a/pom.xml +++ b/pom.xml @@ -165,7 +165,6 @@ <maven-checkstyle-plugin.version>3.0.0</maven-checkstyle-plugin.version> <maven-dependency-plugin.version>3.1.1</maven-dependency-plugin.version> <metrics-version>3.1.2</metrics-version> - <mockito-version>1.10.19</mockito-version> <pac4j.version>2.1.0</pac4j.version> <shiro.version>1.2.6</shiro.version> <shrinkwrap.version>1.2.6</shrinkwrap.version> @@ -1515,12 +1514,6 @@ <version>3.3</version> <scope>test</scope> </dependency> - <dependency> - <groupId>org.mockito</groupId> - <artifactId>mockito-core</artifactId> - <version>${mockito-version}</version> - <scope>test</scope> - </dependency> <dependency> <groupId>org.xmlmatchers</groupId>
