Repository: knox Updated Branches: refs/heads/master 5a08e3742 -> 751b14a25
KNOX-632: Oozie dispatch failing for secure clusters. Fix tests. Project: http://git-wip-us.apache.org/repos/asf/knox/repo Commit: http://git-wip-us.apache.org/repos/asf/knox/commit/751b14a2 Tree: http://git-wip-us.apache.org/repos/asf/knox/tree/751b14a2 Diff: http://git-wip-us.apache.org/repos/asf/knox/diff/751b14a2 Branch: refs/heads/master Commit: 751b14a25f994370a318bb990d01704bd10dcca6 Parents: 5a08e37 Author: Kevin Minder <[email protected]> Authored: Mon Nov 23 15:44:02 2015 -0500 Committer: Kevin Minder <[email protected]> Committed: Mon Nov 23 15:44:02 2015 -0500 ---------------------------------------------------------------------- .../org/apache/hadoop/gateway/dispatch/DefaultDispatch.java | 2 +- .../apache/hadoop/gateway/dispatch/DefaultDispatchTest.java | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/knox/blob/751b14a2/gateway-spi/src/main/java/org/apache/hadoop/gateway/dispatch/DefaultDispatch.java ---------------------------------------------------------------------- diff --git a/gateway-spi/src/main/java/org/apache/hadoop/gateway/dispatch/DefaultDispatch.java b/gateway-spi/src/main/java/org/apache/hadoop/gateway/dispatch/DefaultDispatch.java index a71d56a..e17bd36 100644 --- a/gateway-spi/src/main/java/org/apache/hadoop/gateway/dispatch/DefaultDispatch.java +++ b/gateway-spi/src/main/java/org/apache/hadoop/gateway/dispatch/DefaultDispatch.java @@ -193,7 +193,7 @@ public class DefaultDispatch extends AbstractGatewayDispatch { } GatewayConfig config = (GatewayConfig)request.getServletContext().getAttribute( GatewayConfig.GATEWAY_CONFIG_ATTRIBUTE ); - if( config.isHadoopKerberosSecured() ) { + if( config != null && config.isHadoopKerberosSecured() ) { entity = new PartiallyRepeatableHttpEntity( entity, config.getHttpServerRequestBuffer() ); } http://git-wip-us.apache.org/repos/asf/knox/blob/751b14a2/gateway-spi/src/test/java/org/apache/hadoop/gateway/dispatch/DefaultDispatchTest.java ---------------------------------------------------------------------- diff --git a/gateway-spi/src/test/java/org/apache/hadoop/gateway/dispatch/DefaultDispatchTest.java b/gateway-spi/src/test/java/org/apache/hadoop/gateway/dispatch/DefaultDispatchTest.java index 2c09a5d..1e66cc1 100644 --- a/gateway-spi/src/test/java/org/apache/hadoop/gateway/dispatch/DefaultDispatchTest.java +++ b/gateway-spi/src/test/java/org/apache/hadoop/gateway/dispatch/DefaultDispatchTest.java @@ -30,6 +30,7 @@ import java.net.URI; import java.net.URISyntaxException; import java.net.UnknownHostException; +import javax.servlet.ServletContext; import javax.servlet.ServletInputStream; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; @@ -91,11 +92,14 @@ public class DefaultDispatchTest { public void testCallToSecureClusterWithDelegationToken() throws URISyntaxException, IOException { System.setProperty(GatewayConfig.HADOOP_KERBEROS_SECURED, "true"); DefaultDispatch defaultDispatch = new DefaultDispatch(); + ServletContext servletContext = EasyMock.createNiceMock( ServletContext.class ); + EasyMock.expect( servletContext.getAttribute( GatewayConfig.GATEWAY_CONFIG_ATTRIBUTE ) ).andReturn( null ).anyTimes(); ServletInputStream inputStream = EasyMock.createNiceMock( ServletInputStream.class ); HttpServletRequest inboundRequest = EasyMock.createNiceMock( HttpServletRequest.class ); EasyMock.expect(inboundRequest.getQueryString()).andReturn( "delegation=123").anyTimes(); EasyMock.expect(inboundRequest.getInputStream()).andReturn( inputStream).anyTimes(); - EasyMock.replay( inboundRequest ); + EasyMock.expect(inboundRequest.getServletContext()).andReturn( servletContext ).anyTimes(); + EasyMock.replay( servletContext, inboundRequest ); HttpEntity httpEntity = defaultDispatch.createRequestEntity(inboundRequest); System.setProperty(GatewayConfig.HADOOP_KERBEROS_SECURED, "false"); assertFalse("buffering in the presence of delegation token",
