Repository: knox Updated Branches: refs/heads/master ed75fcb0c -> 71e33f02f
KNOX-1558 - KnoxToken service returns wrong content type and content length values Project: http://git-wip-us.apache.org/repos/asf/knox/repo Commit: http://git-wip-us.apache.org/repos/asf/knox/commit/71e33f02 Tree: http://git-wip-us.apache.org/repos/asf/knox/tree/71e33f02 Diff: http://git-wip-us.apache.org/repos/asf/knox/diff/71e33f02 Branch: refs/heads/master Commit: 71e33f02fe717823f2c250028b3f19fb29249b43 Parents: ed75fcb Author: pzampino <[email protected]> Authored: Tue Nov 6 16:43:55 2018 -0500 Committer: pzampino <[email protected]> Committed: Tue Nov 6 16:43:55 2018 -0500 ---------------------------------------------------------------------- .../service/knoxtoken/TokenResource.java | 10 +- .../knoxtoken/TokenServiceResourceTest.java | 109 ++++--------------- 2 files changed, 22 insertions(+), 97 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/knox/blob/71e33f02/gateway-service-knoxtoken/src/main/java/org/apache/knox/gateway/service/knoxtoken/TokenResource.java ---------------------------------------------------------------------- diff --git a/gateway-service-knoxtoken/src/main/java/org/apache/knox/gateway/service/knoxtoken/TokenResource.java b/gateway-service-knoxtoken/src/main/java/org/apache/knox/gateway/service/knoxtoken/TokenResource.java index f0574f8..24e441c 100644 --- a/gateway-service-knoxtoken/src/main/java/org/apache/knox/gateway/service/knoxtoken/TokenResource.java +++ b/gateway-service-knoxtoken/src/main/java/org/apache/knox/gateway/service/knoxtoken/TokenResource.java @@ -17,7 +17,6 @@ */ package org.apache.knox.gateway.service.knoxtoken; -import java.io.IOException; import java.security.Principal; import java.security.cert.X509Certificate; import java.util.ArrayList; @@ -28,7 +27,6 @@ import java.util.List; import javax.annotation.PostConstruct; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; @@ -74,9 +72,6 @@ public class TokenResource { HttpServletRequest request; @Context - HttpServletResponse response; - - @Context ServletContext context; @PostConstruct @@ -193,14 +188,13 @@ public class TokenResource { String jsonResponse = JsonUtils.renderAsJsonString(map); - response.getWriter().write(jsonResponse); - return Response.ok().build(); + return Response.ok().entity(jsonResponse).build(); } else { return Response.serverError().build(); } } - catch (TokenServiceException | IOException e) { + catch (TokenServiceException e) { log.unableToIssueToken(e); } return Response.ok().entity("{ \"Unable to acquire token.\" }").build(); http://git-wip-us.apache.org/repos/asf/knox/blob/71e33f02/gateway-service-knoxtoken/src/test/java/org/apache/knox/gateway/service/knoxtoken/TokenServiceResourceTest.java ---------------------------------------------------------------------- diff --git a/gateway-service-knoxtoken/src/test/java/org/apache/knox/gateway/service/knoxtoken/TokenServiceResourceTest.java b/gateway-service-knoxtoken/src/test/java/org/apache/knox/gateway/service/knoxtoken/TokenServiceResourceTest.java index ffea408..decef70 100644 --- a/gateway-service-knoxtoken/src/test/java/org/apache/knox/gateway/service/knoxtoken/TokenServiceResourceTest.java +++ b/gateway-service-knoxtoken/src/test/java/org/apache/knox/gateway/service/knoxtoken/TokenServiceResourceTest.java @@ -35,10 +35,7 @@ import org.junit.Test; import javax.security.auth.Subject; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import javax.ws.rs.core.Response; -import java.io.PrintWriter; -import java.io.StringWriter; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.NoSuchAlgorithmException; @@ -115,16 +112,10 @@ public class TokenServiceResourceTest { JWTokenAuthority authority = new TestJWTokenAuthority(publicKey, privateKey); EasyMock.expect(services.getService(GatewayServices.TOKEN_SERVICE)).andReturn(authority); - StringWriter writer = new StringWriter(); - PrintWriter printWriter = new PrintWriter(writer); - HttpServletResponse response = EasyMock.createNiceMock(HttpServletResponse.class); - EasyMock.expect(response.getWriter()).andReturn(printWriter); - - EasyMock.replay(principal, services, context, request, response); + EasyMock.replay(principal, services, context, request); TokenResource tr = new TokenResource(); tr.request = request; - tr.response = response; // Issue a token Response retResponse = tr.doGet(); @@ -132,7 +123,7 @@ public class TokenServiceResourceTest { assertEquals(200, retResponse.getStatus()); // Parse the response - String retString = writer.toString(); + String retString = retResponse.getEntity().toString(); String accessToken = getTagValue(retString, "access_token"); assertNotNull(accessToken); String expiry = getTagValue(retString, "expires_in"); @@ -165,16 +156,10 @@ public class TokenServiceResourceTest { JWTokenAuthority authority = new TestJWTokenAuthority(publicKey, privateKey); EasyMock.expect(services.getService(GatewayServices.TOKEN_SERVICE)).andReturn(authority); - StringWriter writer = new StringWriter(); - PrintWriter printWriter = new PrintWriter(writer); - HttpServletResponse response = EasyMock.createNiceMock(HttpServletResponse.class); - EasyMock.expect(response.getWriter()).andReturn(printWriter); - - EasyMock.replay(principal, services, context, request, response); + EasyMock.replay(principal, services, context, request); TokenResource tr = new TokenResource(); tr.request = request; - tr.response = response; tr.context = context; tr.init(); @@ -184,7 +169,7 @@ public class TokenServiceResourceTest { assertEquals(200, retResponse.getStatus()); // Parse the response - String retString = writer.toString(); + String retString = retResponse.getEntity().toString(); String accessToken = getTagValue(retString, "access_token"); assertNotNull(accessToken); String expiry = getTagValue(retString, "expires_in"); @@ -223,16 +208,10 @@ public class TokenServiceResourceTest { JWTokenAuthority authority = new TestJWTokenAuthority(publicKey, privateKey); EasyMock.expect(services.getService(GatewayServices.TOKEN_SERVICE)).andReturn(authority); - StringWriter writer = new StringWriter(); - PrintWriter printWriter = new PrintWriter(writer); - HttpServletResponse response = EasyMock.createNiceMock(HttpServletResponse.class); - EasyMock.expect(response.getWriter()).andReturn(printWriter); - - EasyMock.replay(principal, services, context, request, response); + EasyMock.replay(principal, services, context, request); TokenResource tr = new TokenResource(); tr.request = request; - tr.response = response; tr.context = context; tr.init(); @@ -242,7 +221,7 @@ public class TokenServiceResourceTest { assertEquals(200, retResponse.getStatus()); // Parse the response - String retString = writer.toString(); + String retString = retResponse.getEntity().toString(); String accessToken = getTagValue(retString, "access_token"); assertNotNull(accessToken); String expiry = getTagValue(retString, "expires_in"); @@ -286,16 +265,10 @@ public class TokenServiceResourceTest { JWTokenAuthority authority = new TestJWTokenAuthority(publicKey, privateKey); EasyMock.expect(services.getService(GatewayServices.TOKEN_SERVICE)).andReturn(authority); - StringWriter writer = new StringWriter(); - PrintWriter printWriter = new PrintWriter(writer); - HttpServletResponse response = EasyMock.createNiceMock(HttpServletResponse.class); - EasyMock.expect(response.getWriter()).andReturn(printWriter); - - EasyMock.replay(principal, services, context, request, response, trustedCertMock); + EasyMock.replay(principal, services, context, request, trustedCertMock); TokenResource tr = new TokenResource(); tr.request = request; - tr.response = response; tr.context = context; tr.init(); @@ -305,7 +278,7 @@ public class TokenServiceResourceTest { assertEquals(200, retResponse.getStatus()); // Parse the response - String retString = writer.toString(); + String retString = retResponse.getEntity().toString(); String accessToken = getTagValue(retString, "access_token"); assertNotNull(accessToken); String expiry = getTagValue(retString, "expires_in"); @@ -343,16 +316,10 @@ public class TokenServiceResourceTest { JWTokenAuthority authority = new TestJWTokenAuthority(publicKey, privateKey); EasyMock.expect(services.getService(GatewayServices.TOKEN_SERVICE)).andReturn(authority); - StringWriter writer = new StringWriter(); - PrintWriter printWriter = new PrintWriter(writer); - HttpServletResponse response = EasyMock.createNiceMock(HttpServletResponse.class); - EasyMock.expect(response.getWriter()).andReturn(printWriter); - - EasyMock.replay(principal, services, context, request, response, trustedCertMock); + EasyMock.replay(principal, services, context, request, trustedCertMock); TokenResource tr = new TokenResource(); tr.request = request; - tr.response = response; tr.context = context; tr.init(); @@ -383,16 +350,10 @@ public class TokenServiceResourceTest { JWTokenAuthority authority = new TestJWTokenAuthority(publicKey, privateKey); EasyMock.expect(services.getService(GatewayServices.TOKEN_SERVICE)).andReturn(authority); - StringWriter writer = new StringWriter(); - PrintWriter printWriter = new PrintWriter(writer); - HttpServletResponse response = EasyMock.createNiceMock(HttpServletResponse.class); - EasyMock.expect(response.getWriter()).andReturn(printWriter); - - EasyMock.replay(principal, services, context, request, response); + EasyMock.replay(principal, services, context, request); TokenResource tr = new TokenResource(); tr.request = request; - tr.response = response; tr.context = context; tr.init(); @@ -423,16 +384,10 @@ public class TokenServiceResourceTest { JWTokenAuthority authority = new TestJWTokenAuthority(publicKey, privateKey); EasyMock.expect(services.getService(GatewayServices.TOKEN_SERVICE)).andReturn(authority); - StringWriter writer = new StringWriter(); - PrintWriter printWriter = new PrintWriter(writer); - HttpServletResponse response = EasyMock.createNiceMock(HttpServletResponse.class); - EasyMock.expect(response.getWriter()).andReturn(printWriter); - - EasyMock.replay(principal, services, context, request, response); + EasyMock.replay(principal, services, context, request); TokenResource tr = new TokenResource(); tr.request = request; - tr.response = response; tr.context = context; tr.init(); @@ -442,7 +397,7 @@ public class TokenServiceResourceTest { assertEquals(200, retResponse.getStatus()); // Parse the response - String retString = writer.toString(); + String retString = retResponse.getEntity().toString(); String accessToken = getTagValue(retString, "access_token"); assertNotNull(accessToken); String expiry = getTagValue(retString, "expires_in"); @@ -475,16 +430,10 @@ public class TokenServiceResourceTest { JWTokenAuthority authority = new TestJWTokenAuthority(publicKey, privateKey); EasyMock.expect(services.getService(GatewayServices.TOKEN_SERVICE)).andReturn(authority); - StringWriter writer = new StringWriter(); - PrintWriter printWriter = new PrintWriter(writer); - HttpServletResponse response = EasyMock.createNiceMock(HttpServletResponse.class); - EasyMock.expect(response.getWriter()).andReturn(printWriter); - - EasyMock.replay(principal, services, context, request, response); + EasyMock.replay(principal, services, context, request); TokenResource tr = new TokenResource(); tr.request = request; - tr.response = response; tr.context = context; tr.init(); @@ -494,7 +443,7 @@ public class TokenServiceResourceTest { assertEquals(200, retResponse.getStatus()); // Parse the response - String retString = writer.toString(); + String retString = retResponse.getEntity().toString(); String accessToken = getTagValue(retString, "access_token"); assertNotNull(accessToken); String expiry = getTagValue(retString, "expires_in"); @@ -531,16 +480,10 @@ public class TokenServiceResourceTest { JWTokenAuthority authority = new TestJWTokenAuthority(publicKey, privateKey); EasyMock.expect(services.getService(GatewayServices.TOKEN_SERVICE)).andReturn(authority); - StringWriter writer = new StringWriter(); - PrintWriter printWriter = new PrintWriter(writer); - HttpServletResponse response = EasyMock.createNiceMock(HttpServletResponse.class); - EasyMock.expect(response.getWriter()).andReturn(printWriter); - - EasyMock.replay(principal, services, context, request, response); + EasyMock.replay(principal, services, context, request); TokenResource tr = new TokenResource(); tr.request = request; - tr.response = response; tr.context = context; tr.init(); @@ -550,7 +493,7 @@ public class TokenServiceResourceTest { assertEquals(200, retResponse.getStatus()); // Parse the response - String retString = writer.toString(); + String retString = retResponse.getEntity().toString(); String accessToken = getTagValue(retString, "access_token"); assertNotNull(accessToken); String expiry = getTagValue(retString, "expires_in"); @@ -588,16 +531,10 @@ public class TokenServiceResourceTest { JWTokenAuthority authority = new TestJWTokenAuthority(publicKey, privateKey); EasyMock.expect(services.getService(GatewayServices.TOKEN_SERVICE)).andReturn(authority); - StringWriter writer = new StringWriter(); - PrintWriter printWriter = new PrintWriter(writer); - HttpServletResponse response = EasyMock.createNiceMock(HttpServletResponse.class); - EasyMock.expect(response.getWriter()).andReturn(printWriter); - - EasyMock.replay(principal, services, context, request, response); + EasyMock.replay(principal, services, context, request); TokenResource tr = new TokenResource(); tr.request = request; - tr.response = response; tr.context = context; tr.init(); @@ -607,7 +544,7 @@ public class TokenServiceResourceTest { assertEquals(200, retResponse.getStatus()); // Parse the response - String retString = writer.toString(); + String retString = retResponse.getEntity().toString(); String accessToken = getTagValue(retString, "access_token"); assertNotNull(accessToken); String expiry = getTagValue(retString, "expires_in"); @@ -644,16 +581,10 @@ public class TokenServiceResourceTest { JWTokenAuthority authority = new TestJWTokenAuthority(publicKey, privateKey); EasyMock.expect(services.getService(GatewayServices.TOKEN_SERVICE)).andReturn(authority); - StringWriter writer = new StringWriter(); - PrintWriter printWriter = new PrintWriter(writer); - HttpServletResponse response = EasyMock.createNiceMock(HttpServletResponse.class); - EasyMock.expect(response.getWriter()).andReturn(printWriter); - - EasyMock.replay(principal, services, context, request, response); + EasyMock.replay(principal, services, context, request); TokenResource tr = new TokenResource(); tr.request = request; - tr.response = response; tr.context = context; tr.init(); @@ -663,7 +594,7 @@ public class TokenServiceResourceTest { assertEquals(200, retResponse.getStatus()); // Parse the response - String retString = writer.toString(); + String retString = retResponse.getEntity().toString(); String accessToken = getTagValue(retString, "access_token"); assertNotNull(accessToken); String expiry = getTagValue(retString, "expires_in");
