|
@@ -18,6 +18,18 @@
|
|
|
package org.apache.hadoop.security.token.delegation.web;
|
|
|
|
|
|
import static org.apache.hadoop.security.token.delegation.web.DelegationTokenAuthenticator.DelegationTokenOperation.*;
|
|
|
+import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
|
+import static org.junit.jupiter.api.Assertions.assertFalse;
|
|
|
+import static org.junit.jupiter.api.Assertions.assertNull;
|
|
|
+import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
|
+import static org.junit.jupiter.api.Assertions.fail;
|
|
|
+import static org.mockito.Mockito.contains;
|
|
|
+import static org.mockito.Mockito.eq;
|
|
|
+import static org.mockito.Mockito.mock;
|
|
|
+import static org.mockito.Mockito.verify;
|
|
|
+import static org.mockito.Mockito.when;
|
|
|
+import static org.mockito.Mockito.reset;
|
|
|
+import static org.mockito.Mockito.startsWith;
|
|
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
|
@@ -30,13 +42,10 @@ import org.apache.hadoop.security.authentication.server.AuthenticationHandler;
|
|
|
import org.apache.hadoop.security.authentication.server.AuthenticationToken;
|
|
|
import org.apache.hadoop.security.token.SecretManager;
|
|
|
import org.apache.hadoop.security.token.Token;
|
|
|
-import org.junit.After;
|
|
|
-import org.junit.Assert;
|
|
|
-import org.junit.Before;
|
|
|
-import org.junit.Rule;
|
|
|
-import org.junit.Test;
|
|
|
-import org.junit.rules.Timeout;
|
|
|
-import org.mockito.Mockito;
|
|
|
+import org.junit.jupiter.api.AfterEach;
|
|
|
+import org.junit.jupiter.api.BeforeEach;
|
|
|
+import org.junit.jupiter.api.Test;
|
|
|
+import org.junit.jupiter.api.Timeout;
|
|
|
|
|
|
import javax.servlet.ServletException;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
@@ -47,8 +56,8 @@ import java.io.PrintWriter;
|
|
|
import java.io.StringWriter;
|
|
|
import java.util.Map;
|
|
|
import java.util.Properties;
|
|
|
-import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
+@Timeout(120)
|
|
|
public class TestDelegationTokenAuthenticationHandlerWithMocks {
|
|
|
|
|
|
public static class MockDelegationTokenAuthenticationHandler
|
|
@@ -93,10 +102,7 @@ public class TestDelegationTokenAuthenticationHandlerWithMocks {
|
|
|
|
|
|
private DelegationTokenAuthenticationHandler handler;
|
|
|
|
|
|
- @Rule
|
|
|
- public Timeout testTimeout = new Timeout(120000, TimeUnit.MILLISECONDS);
|
|
|
-
|
|
|
- @Before
|
|
|
+ @BeforeEach
|
|
|
public void setUp() throws Exception {
|
|
|
Properties conf = new Properties();
|
|
|
|
|
@@ -105,7 +111,7 @@ public class TestDelegationTokenAuthenticationHandlerWithMocks {
|
|
|
handler.initTokenManager(conf);
|
|
|
}
|
|
|
|
|
|
- @After
|
|
|
+ @AfterEach
|
|
|
public void cleanUp() {
|
|
|
handler.destroy();
|
|
|
}
|
|
@@ -130,40 +136,40 @@ public class TestDelegationTokenAuthenticationHandlerWithMocks {
|
|
|
}
|
|
|
|
|
|
private void testNonManagementOperation() throws Exception {
|
|
|
- HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
|
|
|
- Mockito.when(request.getParameter(
|
|
|
+ HttpServletRequest request = mock(HttpServletRequest.class);
|
|
|
+ when(request.getParameter(
|
|
|
DelegationTokenAuthenticator.OP_PARAM)).thenReturn(null);
|
|
|
- Assert.assertTrue(handler.managementOperation(null, request, null));
|
|
|
- Mockito.when(request.getParameter(
|
|
|
+ assertTrue(handler.managementOperation(null, request, null));
|
|
|
+ when(request.getParameter(
|
|
|
DelegationTokenAuthenticator.OP_PARAM)).thenReturn("CREATE");
|
|
|
- Assert.assertTrue(handler.managementOperation(null, request, null));
|
|
|
+ assertTrue(handler.managementOperation(null, request, null));
|
|
|
}
|
|
|
|
|
|
private void testManagementOperationErrors() throws Exception {
|
|
|
- HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
|
|
|
- HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
|
|
|
- Mockito.when(request.getQueryString()).thenReturn(
|
|
|
+ HttpServletRequest request = mock(HttpServletRequest.class);
|
|
|
+ HttpServletResponse response = mock(HttpServletResponse.class);
|
|
|
+ when(request.getQueryString()).thenReturn(
|
|
|
DelegationTokenAuthenticator.OP_PARAM + "=" +
|
|
|
DelegationTokenAuthenticator.DelegationTokenOperation.
|
|
|
GETDELEGATIONTOKEN.toString()
|
|
|
);
|
|
|
- Mockito.when(request.getMethod()).thenReturn("FOO");
|
|
|
- Assert.assertFalse(handler.managementOperation(null, request, response));
|
|
|
- Mockito.verify(response).sendError(
|
|
|
- Mockito.eq(HttpServletResponse.SC_BAD_REQUEST),
|
|
|
- Mockito.startsWith("Wrong HTTP method"));
|
|
|
-
|
|
|
- Mockito.reset(response);
|
|
|
- Mockito.when(request.getMethod()).thenReturn(
|
|
|
+ when(request.getMethod()).thenReturn("FOO");
|
|
|
+ assertFalse(handler.managementOperation(null, request, response));
|
|
|
+ verify(response).sendError(
|
|
|
+ eq(HttpServletResponse.SC_BAD_REQUEST),
|
|
|
+ startsWith("Wrong HTTP method"));
|
|
|
+
|
|
|
+ reset(response);
|
|
|
+ when(request.getMethod()).thenReturn(
|
|
|
DelegationTokenAuthenticator.DelegationTokenOperation.
|
|
|
GETDELEGATIONTOKEN.getHttpMethod()
|
|
|
);
|
|
|
- Assert.assertFalse(handler.managementOperation(null, request, response));
|
|
|
- Mockito.verify(response).setStatus(
|
|
|
- Mockito.eq(HttpServletResponse.SC_UNAUTHORIZED));
|
|
|
- Mockito.verify(response).setHeader(
|
|
|
- Mockito.eq(KerberosAuthenticator.WWW_AUTHENTICATE),
|
|
|
- Mockito.eq("mock"));
|
|
|
+ assertFalse(handler.managementOperation(null, request, response));
|
|
|
+ verify(response).setStatus(
|
|
|
+ eq(HttpServletResponse.SC_UNAUTHORIZED));
|
|
|
+ verify(response).setHeader(
|
|
|
+ eq(KerberosAuthenticator.WWW_AUTHENTICATE),
|
|
|
+ eq("mock"));
|
|
|
}
|
|
|
|
|
|
private Token<DelegationTokenIdentifier> testGetToken(String renewer,
|
|
@@ -171,17 +177,17 @@ public class TestDelegationTokenAuthenticationHandlerWithMocks {
|
|
|
DelegationTokenAuthenticator.DelegationTokenOperation op =
|
|
|
DelegationTokenAuthenticator.DelegationTokenOperation.
|
|
|
GETDELEGATIONTOKEN;
|
|
|
- HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
|
|
|
- HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
|
|
|
- Mockito.when(request.getQueryString()).
|
|
|
+ HttpServletRequest request = mock(HttpServletRequest.class);
|
|
|
+ HttpServletResponse response = mock(HttpServletResponse.class);
|
|
|
+ when(request.getQueryString()).
|
|
|
thenReturn(DelegationTokenAuthenticator.OP_PARAM + "=" + op.toString());
|
|
|
- Mockito.when(request.getMethod()).thenReturn(op.getHttpMethod());
|
|
|
+ when(request.getMethod()).thenReturn(op.getHttpMethod());
|
|
|
|
|
|
- AuthenticationToken token = Mockito.mock(AuthenticationToken.class);
|
|
|
- Mockito.when(token.getUserName()).thenReturn("user");
|
|
|
- Mockito.when(response.getWriter()).thenReturn(new PrintWriter(
|
|
|
+ AuthenticationToken token = mock(AuthenticationToken.class);
|
|
|
+ when(token.getUserName()).thenReturn("user");
|
|
|
+ when(response.getWriter()).thenReturn(new PrintWriter(
|
|
|
new StringWriter()));
|
|
|
- Assert.assertFalse(handler.managementOperation(token, request, response));
|
|
|
+ assertFalse(handler.managementOperation(token, request, response));
|
|
|
|
|
|
String queryString =
|
|
|
DelegationTokenAuthenticator.OP_PARAM + "=" + op.toString() + "&" +
|
|
@@ -190,27 +196,27 @@ public class TestDelegationTokenAuthenticationHandlerWithMocks {
|
|
|
queryString += "&" + DelegationTokenAuthenticator.SERVICE_PARAM + "="
|
|
|
+ service;
|
|
|
}
|
|
|
- Mockito.when(request.getQueryString()).thenReturn(queryString);
|
|
|
- Mockito.reset(response);
|
|
|
- Mockito.reset(token);
|
|
|
- Mockito.when(token.getUserName()).thenReturn("user");
|
|
|
+ when(request.getQueryString()).thenReturn(queryString);
|
|
|
+ reset(response);
|
|
|
+ reset(token);
|
|
|
+ when(token.getUserName()).thenReturn("user");
|
|
|
StringWriter writer = new StringWriter();
|
|
|
PrintWriter pwriter = new PrintWriter(writer);
|
|
|
- Mockito.when(response.getWriter()).thenReturn(pwriter);
|
|
|
- Assert.assertFalse(handler.managementOperation(token, request, response));
|
|
|
+ when(response.getWriter()).thenReturn(pwriter);
|
|
|
+ assertFalse(handler.managementOperation(token, request, response));
|
|
|
if (renewer == null) {
|
|
|
- Mockito.verify(token).getUserName();
|
|
|
+ verify(token).getUserName();
|
|
|
} else {
|
|
|
- Mockito.verify(token).getUserName();
|
|
|
+ verify(token).getUserName();
|
|
|
}
|
|
|
- Mockito.verify(response).setStatus(HttpServletResponse.SC_OK);
|
|
|
- Mockito.verify(response).setContentType(MediaType.APPLICATION_JSON);
|
|
|
+ verify(response).setStatus(HttpServletResponse.SC_OK);
|
|
|
+ verify(response).setContentType(MediaType.APPLICATION_JSON);
|
|
|
pwriter.close();
|
|
|
String responseOutput = writer.toString();
|
|
|
String tokenLabel = DelegationTokenAuthenticator.
|
|
|
DELEGATION_TOKEN_JSON;
|
|
|
- Assert.assertTrue(responseOutput.contains(tokenLabel));
|
|
|
- Assert.assertTrue(responseOutput.contains(
|
|
|
+ assertTrue(responseOutput.contains(tokenLabel));
|
|
|
+ assertTrue(responseOutput.contains(
|
|
|
DelegationTokenAuthenticator.DELEGATION_TOKEN_URL_STRING_JSON));
|
|
|
ObjectMapper jsonMapper = new ObjectMapper();
|
|
|
Map json = jsonMapper.readValue(responseOutput, Map.class);
|
|
@@ -221,11 +227,11 @@ public class TestDelegationTokenAuthenticationHandlerWithMocks {
|
|
|
Token<DelegationTokenIdentifier> dt = new Token<DelegationTokenIdentifier>();
|
|
|
dt.decodeFromUrlString(tokenStr);
|
|
|
handler.getTokenManager().verifyToken(dt);
|
|
|
- Assert.assertEquals(expectedTokenKind, dt.getKind());
|
|
|
+ assertEquals(expectedTokenKind, dt.getKind());
|
|
|
if (service != null) {
|
|
|
- Assert.assertEquals(service, dt.getService().toString());
|
|
|
+ assertEquals(service, dt.getService().toString());
|
|
|
} else {
|
|
|
- Assert.assertEquals(0, dt.getService().getLength());
|
|
|
+ assertEquals(0, dt.getService().getLength());
|
|
|
}
|
|
|
return dt;
|
|
|
}
|
|
@@ -244,33 +250,33 @@ public class TestDelegationTokenAuthenticationHandlerWithMocks {
|
|
|
DelegationTokenAuthenticator.DelegationTokenOperation op =
|
|
|
DelegationTokenAuthenticator.DelegationTokenOperation.
|
|
|
CANCELDELEGATIONTOKEN;
|
|
|
- HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
|
|
|
- HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
|
|
|
- Mockito.when(request.getQueryString()).thenReturn(
|
|
|
+ HttpServletRequest request = mock(HttpServletRequest.class);
|
|
|
+ HttpServletResponse response = mock(HttpServletResponse.class);
|
|
|
+ when(request.getQueryString()).thenReturn(
|
|
|
DelegationTokenAuthenticator.OP_PARAM + "=" + op.toString());
|
|
|
- Mockito.when(request.getMethod()).
|
|
|
+ when(request.getMethod()).
|
|
|
thenReturn(op.getHttpMethod());
|
|
|
|
|
|
- Assert.assertFalse(handler.managementOperation(null, request, response));
|
|
|
- Mockito.verify(response).sendError(
|
|
|
- Mockito.eq(HttpServletResponse.SC_BAD_REQUEST),
|
|
|
- Mockito.contains("requires the parameter [token]"));
|
|
|
+ assertFalse(handler.managementOperation(null, request, response));
|
|
|
+ verify(response).sendError(
|
|
|
+ eq(HttpServletResponse.SC_BAD_REQUEST),
|
|
|
+ contains("requires the parameter [token]"));
|
|
|
|
|
|
- Mockito.reset(response);
|
|
|
- Mockito.when(request.getQueryString()).thenReturn(
|
|
|
+ reset(response);
|
|
|
+ when(request.getQueryString()).thenReturn(
|
|
|
DelegationTokenAuthenticator.OP_PARAM + "=" + op.toString() + "&" +
|
|
|
DelegationTokenAuthenticator.TOKEN_PARAM + "=" +
|
|
|
token.encodeToUrlString()
|
|
|
);
|
|
|
- Assert.assertFalse(handler.managementOperation(null, request, response));
|
|
|
- Mockito.verify(response).setStatus(HttpServletResponse.SC_OK);
|
|
|
+ assertFalse(handler.managementOperation(null, request, response));
|
|
|
+ verify(response).setStatus(HttpServletResponse.SC_OK);
|
|
|
try {
|
|
|
handler.getTokenManager().verifyToken(token);
|
|
|
- Assert.fail();
|
|
|
+ fail();
|
|
|
} catch (SecretManager.InvalidToken ex) {
|
|
|
//NOP
|
|
|
} catch (Throwable ex) {
|
|
|
- Assert.fail();
|
|
|
+ fail();
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -288,42 +294,42 @@ public class TestDelegationTokenAuthenticationHandlerWithMocks {
|
|
|
DelegationTokenAuthenticator.DelegationTokenOperation op =
|
|
|
DelegationTokenAuthenticator.DelegationTokenOperation.
|
|
|
RENEWDELEGATIONTOKEN;
|
|
|
- HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
|
|
|
- HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
|
|
|
- Mockito.when(request.getQueryString()).
|
|
|
+ HttpServletRequest request = mock(HttpServletRequest.class);
|
|
|
+ HttpServletResponse response = mock(HttpServletResponse.class);
|
|
|
+ when(request.getQueryString()).
|
|
|
thenReturn(DelegationTokenAuthenticator.OP_PARAM + "=" + op.toString());
|
|
|
- Mockito.when(request.getMethod()).
|
|
|
+ when(request.getMethod()).
|
|
|
thenReturn(op.getHttpMethod());
|
|
|
|
|
|
- Assert.assertFalse(handler.managementOperation(null, request, response));
|
|
|
- Mockito.verify(response).setStatus(
|
|
|
- Mockito.eq(HttpServletResponse.SC_UNAUTHORIZED));
|
|
|
- Mockito.verify(response).setHeader(Mockito.eq(
|
|
|
+ assertFalse(handler.managementOperation(null, request, response));
|
|
|
+ verify(response).setStatus(
|
|
|
+ eq(HttpServletResponse.SC_UNAUTHORIZED));
|
|
|
+ verify(response).setHeader(eq(
|
|
|
KerberosAuthenticator.WWW_AUTHENTICATE),
|
|
|
- Mockito.eq("mock")
|
|
|
+ eq("mock")
|
|
|
);
|
|
|
|
|
|
- Mockito.reset(response);
|
|
|
- AuthenticationToken token = Mockito.mock(AuthenticationToken.class);
|
|
|
- Mockito.when(token.getUserName()).thenReturn(testRenewer);
|
|
|
- Assert.assertFalse(handler.managementOperation(token, request, response));
|
|
|
- Mockito.verify(response).sendError(
|
|
|
- Mockito.eq(HttpServletResponse.SC_BAD_REQUEST),
|
|
|
- Mockito.contains("requires the parameter [token]"));
|
|
|
+ reset(response);
|
|
|
+ AuthenticationToken token = mock(AuthenticationToken.class);
|
|
|
+ when(token.getUserName()).thenReturn(testRenewer);
|
|
|
+ assertFalse(handler.managementOperation(token, request, response));
|
|
|
+ verify(response).sendError(
|
|
|
+ eq(HttpServletResponse.SC_BAD_REQUEST),
|
|
|
+ contains("requires the parameter [token]"));
|
|
|
|
|
|
- Mockito.reset(response);
|
|
|
+ reset(response);
|
|
|
StringWriter writer = new StringWriter();
|
|
|
PrintWriter pwriter = new PrintWriter(writer);
|
|
|
- Mockito.when(response.getWriter()).thenReturn(pwriter);
|
|
|
+ when(response.getWriter()).thenReturn(pwriter);
|
|
|
|
|
|
- Mockito.when(request.getQueryString()).
|
|
|
+ when(request.getQueryString()).
|
|
|
thenReturn(DelegationTokenAuthenticator.OP_PARAM + "=" + op.toString() +
|
|
|
"&" + DelegationTokenAuthenticator.TOKEN_PARAM + "=" +
|
|
|
dToken.encodeToUrlString());
|
|
|
- Assert.assertFalse(handler.managementOperation(token, request, response));
|
|
|
- Mockito.verify(response).setStatus(HttpServletResponse.SC_OK);
|
|
|
+ assertFalse(handler.managementOperation(token, request, response));
|
|
|
+ verify(response).setStatus(HttpServletResponse.SC_OK);
|
|
|
pwriter.close();
|
|
|
- Assert.assertTrue(writer.toString().contains("long"));
|
|
|
+ assertTrue(writer.toString().contains("long"));
|
|
|
handler.getTokenManager().verifyToken(dToken);
|
|
|
}
|
|
|
|
|
@@ -337,104 +343,104 @@ public class TestDelegationTokenAuthenticationHandlerWithMocks {
|
|
|
|
|
|
@SuppressWarnings("unchecked")
|
|
|
private void testValidDelegationTokenQueryString() throws Exception {
|
|
|
- HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
|
|
|
- HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
|
|
|
+ HttpServletRequest request = mock(HttpServletRequest.class);
|
|
|
+ HttpServletResponse response = mock(HttpServletResponse.class);
|
|
|
Token<DelegationTokenIdentifier> dToken =
|
|
|
(Token<DelegationTokenIdentifier>) handler.getTokenManager().createToken(
|
|
|
UserGroupInformation.getCurrentUser(), "user");
|
|
|
- Mockito.when(request.getQueryString()).thenReturn(
|
|
|
+ when(request.getQueryString()).thenReturn(
|
|
|
DelegationTokenAuthenticator.DELEGATION_PARAM + "=" +
|
|
|
dToken.encodeToUrlString());
|
|
|
|
|
|
AuthenticationToken token = handler.authenticate(request, response);
|
|
|
- Assert.assertEquals(UserGroupInformation.getCurrentUser().
|
|
|
+ assertEquals(UserGroupInformation.getCurrentUser().
|
|
|
getShortUserName(), token.getUserName());
|
|
|
- Assert.assertEquals(0, token.getExpires());
|
|
|
- Assert.assertEquals(handler.getType(),
|
|
|
+ assertEquals(0, token.getExpires());
|
|
|
+ assertEquals(handler.getType(),
|
|
|
token.getType());
|
|
|
- Assert.assertTrue(token.isExpired());
|
|
|
+ assertTrue(token.isExpired());
|
|
|
}
|
|
|
|
|
|
@SuppressWarnings("unchecked")
|
|
|
private void testValidDelegationTokenHeader() throws Exception {
|
|
|
- HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
|
|
|
- HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
|
|
|
+ HttpServletRequest request = mock(HttpServletRequest.class);
|
|
|
+ HttpServletResponse response = mock(HttpServletResponse.class);
|
|
|
Token<DelegationTokenIdentifier> dToken =
|
|
|
(Token<DelegationTokenIdentifier>) handler.getTokenManager().createToken(
|
|
|
UserGroupInformation.getCurrentUser(), "user");
|
|
|
- Mockito.when(request.getHeader(Mockito.eq(
|
|
|
+ when(request.getHeader(eq(
|
|
|
DelegationTokenAuthenticator.DELEGATION_TOKEN_HEADER))).thenReturn(
|
|
|
dToken.encodeToUrlString());
|
|
|
|
|
|
AuthenticationToken token = handler.authenticate(request, response);
|
|
|
- Assert.assertEquals(UserGroupInformation.getCurrentUser().
|
|
|
+ assertEquals(UserGroupInformation.getCurrentUser().
|
|
|
getShortUserName(), token.getUserName());
|
|
|
- Assert.assertEquals(0, token.getExpires());
|
|
|
- Assert.assertEquals(handler.getType(),
|
|
|
+ assertEquals(0, token.getExpires());
|
|
|
+ assertEquals(handler.getType(),
|
|
|
token.getType());
|
|
|
- Assert.assertTrue(token.isExpired());
|
|
|
+ assertTrue(token.isExpired());
|
|
|
}
|
|
|
|
|
|
private void testInvalidDelegationTokenQueryString() throws Exception {
|
|
|
- HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
|
|
|
- HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
|
|
|
- Mockito.when(request.getQueryString()).thenReturn(
|
|
|
+ HttpServletRequest request = mock(HttpServletRequest.class);
|
|
|
+ HttpServletResponse response = mock(HttpServletResponse.class);
|
|
|
+ when(request.getQueryString()).thenReturn(
|
|
|
DelegationTokenAuthenticator.DELEGATION_PARAM + "=invalid");
|
|
|
StringWriter writer = new StringWriter();
|
|
|
- Mockito.when(response.getWriter()).thenReturn(new PrintWriter(writer));
|
|
|
- Assert.assertNull(handler.authenticate(request, response));
|
|
|
- Mockito.verify(response).setStatus(HttpServletResponse.SC_FORBIDDEN);
|
|
|
- Assert.assertTrue(writer.toString().contains("AuthenticationException"));
|
|
|
+ when(response.getWriter()).thenReturn(new PrintWriter(writer));
|
|
|
+ assertNull(handler.authenticate(request, response));
|
|
|
+ verify(response).setStatus(HttpServletResponse.SC_FORBIDDEN);
|
|
|
+ assertTrue(writer.toString().contains("AuthenticationException"));
|
|
|
}
|
|
|
|
|
|
private void testInvalidDelegationTokenHeader() throws Exception {
|
|
|
- HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
|
|
|
- HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
|
|
|
- Mockito.when(request.getHeader(Mockito.eq(
|
|
|
+ HttpServletRequest request = mock(HttpServletRequest.class);
|
|
|
+ HttpServletResponse response = mock(HttpServletResponse.class);
|
|
|
+ when(request.getHeader(eq(
|
|
|
DelegationTokenAuthenticator.DELEGATION_TOKEN_HEADER))).thenReturn(
|
|
|
"invalid");
|
|
|
StringWriter writer = new StringWriter();
|
|
|
- Mockito.when(response.getWriter()).thenReturn(new PrintWriter(writer));
|
|
|
- Assert.assertNull(handler.authenticate(request, response));
|
|
|
- Assert.assertTrue(writer.toString().contains("AuthenticationException"));
|
|
|
+ when(response.getWriter()).thenReturn(new PrintWriter(writer));
|
|
|
+ assertNull(handler.authenticate(request, response));
|
|
|
+ assertTrue(writer.toString().contains("AuthenticationException"));
|
|
|
}
|
|
|
|
|
|
private String getToken() throws Exception {
|
|
|
DelegationTokenAuthenticator.DelegationTokenOperation op =
|
|
|
DelegationTokenAuthenticator.DelegationTokenOperation.
|
|
|
GETDELEGATIONTOKEN;
|
|
|
- HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
|
|
|
- HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
|
|
|
- Mockito.when(request.getQueryString()).
|
|
|
+ HttpServletRequest request = mock(HttpServletRequest.class);
|
|
|
+ HttpServletResponse response = mock(HttpServletResponse.class);
|
|
|
+ when(request.getQueryString()).
|
|
|
thenReturn(DelegationTokenAuthenticator.OP_PARAM + "=" + op.toString());
|
|
|
- Mockito.when(request.getMethod()).thenReturn(op.getHttpMethod());
|
|
|
+ when(request.getMethod()).thenReturn(op.getHttpMethod());
|
|
|
|
|
|
- AuthenticationToken token = Mockito.mock(AuthenticationToken.class);
|
|
|
- Mockito.when(token.getUserName()).thenReturn("user");
|
|
|
- Mockito.when(response.getWriter()).thenReturn(new PrintWriter(
|
|
|
+ AuthenticationToken token = mock(AuthenticationToken.class);
|
|
|
+ when(token.getUserName()).thenReturn("user");
|
|
|
+ when(response.getWriter()).thenReturn(new PrintWriter(
|
|
|
new StringWriter()));
|
|
|
- Assert.assertFalse(handler.managementOperation(token, request, response));
|
|
|
+ assertFalse(handler.managementOperation(token, request, response));
|
|
|
|
|
|
- Mockito.when(request.getQueryString()).
|
|
|
+ when(request.getQueryString()).
|
|
|
thenReturn(DelegationTokenAuthenticator.OP_PARAM + "=" + op.toString() +
|
|
|
"&" + DelegationTokenAuthenticator.RENEWER_PARAM + "=" + null);
|
|
|
|
|
|
- Mockito.reset(response);
|
|
|
- Mockito.reset(token);
|
|
|
- Mockito.when(token.getUserName()).thenReturn("user");
|
|
|
+ reset(response);
|
|
|
+ reset(token);
|
|
|
+ when(token.getUserName()).thenReturn("user");
|
|
|
StringWriter writer = new StringWriter();
|
|
|
PrintWriter pwriter = new PrintWriter(writer);
|
|
|
- Mockito.when(response.getWriter()).thenReturn(pwriter);
|
|
|
- Assert.assertFalse(handler.managementOperation(token, request, response));
|
|
|
- Mockito.verify(token).getUserName();
|
|
|
- Mockito.verify(response).setStatus(HttpServletResponse.SC_OK);
|
|
|
- Mockito.verify(response).setContentType(MediaType.APPLICATION_JSON);
|
|
|
+ when(response.getWriter()).thenReturn(pwriter);
|
|
|
+ assertFalse(handler.managementOperation(token, request, response));
|
|
|
+ verify(token).getUserName();
|
|
|
+ verify(response).setStatus(HttpServletResponse.SC_OK);
|
|
|
+ verify(response).setContentType(MediaType.APPLICATION_JSON);
|
|
|
pwriter.close();
|
|
|
String responseOutput = writer.toString();
|
|
|
String tokenLabel = DelegationTokenAuthenticator.
|
|
|
DELEGATION_TOKEN_JSON;
|
|
|
- Assert.assertTrue(responseOutput.contains(tokenLabel));
|
|
|
- Assert.assertTrue(responseOutput.contains(
|
|
|
+ assertTrue(responseOutput.contains(tokenLabel));
|
|
|
+ assertTrue(responseOutput.contains(
|
|
|
DelegationTokenAuthenticator.DELEGATION_TOKEN_URL_STRING_JSON));
|
|
|
ObjectMapper jsonMapper = new ObjectMapper();
|
|
|
Map json = jsonMapper.readValue(responseOutput, Map.class);
|
|
@@ -453,23 +459,23 @@ public class TestDelegationTokenAuthenticationHandlerWithMocks {
|
|
|
DelegationTokenAuthenticator.DelegationTokenOperation op =
|
|
|
DelegationTokenAuthenticator.DelegationTokenOperation.
|
|
|
GETDELEGATIONTOKEN;
|
|
|
- HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
|
|
|
- Mockito.when(request.getMethod()).thenReturn(op.getHttpMethod());
|
|
|
- HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
|
|
|
- Mockito.when(response.getWriter()).thenReturn(new PrintWriter(
|
|
|
+ HttpServletRequest request = mock(HttpServletRequest.class);
|
|
|
+ when(request.getMethod()).thenReturn(op.getHttpMethod());
|
|
|
+ HttpServletResponse response = mock(HttpServletResponse.class);
|
|
|
+ when(response.getWriter()).thenReturn(new PrintWriter(
|
|
|
new StringWriter()));
|
|
|
String tokenStr = getToken();
|
|
|
// Try get a new token using the fetched token, should get 401.
|
|
|
- Mockito.when(request.getQueryString()).
|
|
|
+ when(request.getQueryString()).
|
|
|
thenReturn(DelegationTokenAuthenticator.OP_PARAM + "=" + op.toString() +
|
|
|
"&" + DelegationTokenAuthenticator.RENEWER_PARAM + "=" + null +
|
|
|
"&" + DelegationTokenAuthenticator.DELEGATION_PARAM + "=" + tokenStr);
|
|
|
- Mockito.reset(response);
|
|
|
+ reset(response);
|
|
|
StringWriter writer = new StringWriter();
|
|
|
PrintWriter pwriter = new PrintWriter(writer);
|
|
|
- Mockito.when(response.getWriter()).thenReturn(pwriter);
|
|
|
- Assert.assertFalse(handler.managementOperation(null, request, response));
|
|
|
- Mockito.verify(response).setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
|
|
+ when(response.getWriter()).thenReturn(pwriter);
|
|
|
+ assertFalse(handler.managementOperation(null, request, response));
|
|
|
+ verify(response).setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
|
|
}
|
|
|
|
|
|
@Test
|
|
@@ -477,23 +483,23 @@ public class TestDelegationTokenAuthenticationHandlerWithMocks {
|
|
|
DelegationTokenAuthenticator.DelegationTokenOperation op =
|
|
|
DelegationTokenAuthenticator.DelegationTokenOperation.
|
|
|
RENEWDELEGATIONTOKEN;
|
|
|
- HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
|
|
|
- Mockito.when(request.getMethod()).thenReturn(op.getHttpMethod());
|
|
|
- HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
|
|
|
- Mockito.when(response.getWriter()).thenReturn(new PrintWriter(
|
|
|
+ HttpServletRequest request = mock(HttpServletRequest.class);
|
|
|
+ when(request.getMethod()).thenReturn(op.getHttpMethod());
|
|
|
+ HttpServletResponse response = mock(HttpServletResponse.class);
|
|
|
+ when(response.getWriter()).thenReturn(new PrintWriter(
|
|
|
new StringWriter()));
|
|
|
String tokenStr = getToken();
|
|
|
// Try renew a token using itself, should get 401.
|
|
|
- Mockito.when(request.getQueryString()).
|
|
|
+ when(request.getQueryString()).
|
|
|
thenReturn(DelegationTokenAuthenticator.OP_PARAM + "=" + op.toString() +
|
|
|
"&" + DelegationTokenAuthenticator.TOKEN_PARAM + "=" + tokenStr +
|
|
|
"&" + DelegationTokenAuthenticator.DELEGATION_PARAM + "=" + tokenStr);
|
|
|
- Mockito.reset(response);
|
|
|
+ reset(response);
|
|
|
StringWriter writer = new StringWriter();
|
|
|
PrintWriter pwriter = new PrintWriter(writer);
|
|
|
- Mockito.when(response.getWriter()).thenReturn(pwriter);
|
|
|
- Assert.assertFalse(handler.managementOperation(null, request, response));
|
|
|
- Mockito.verify(response).setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
|
|
+ when(response.getWriter()).thenReturn(pwriter);
|
|
|
+ assertFalse(handler.managementOperation(null, request, response));
|
|
|
+ verify(response).setStatus(HttpServletResponse.SC_UNAUTHORIZED);
|
|
|
}
|
|
|
|
|
|
@Test
|
|
@@ -510,14 +516,14 @@ public class TestDelegationTokenAuthenticationHandlerWithMocks {
|
|
|
|
|
|
DelegationTokenAuthenticator.DelegationTokenOperation op =
|
|
|
GETDELEGATIONTOKEN;
|
|
|
- HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
|
|
|
- HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
|
|
|
- Mockito.when(request.getQueryString()).thenReturn(
|
|
|
+ HttpServletRequest request = mock(HttpServletRequest.class);
|
|
|
+ HttpServletResponse response = mock(HttpServletResponse.class);
|
|
|
+ when(request.getQueryString()).thenReturn(
|
|
|
DelegationTokenAuthenticator.OP_PARAM + "=" + op.toString());
|
|
|
- Mockito.when(request.getMethod()).thenReturn(op.getHttpMethod());
|
|
|
+ when(request.getMethod()).thenReturn(op.getHttpMethod());
|
|
|
|
|
|
- AuthenticationToken token = Mockito.mock(AuthenticationToken.class);
|
|
|
- Mockito.when(token.getUserName()).thenReturn("user");
|
|
|
+ AuthenticationToken token = mock(AuthenticationToken.class);
|
|
|
+ when(token.getUserName()).thenReturn("user");
|
|
|
final MutableBoolean closed = new MutableBoolean();
|
|
|
PrintWriter printWriterCloseCount = new PrintWriter(new StringWriter()) {
|
|
|
@Override
|
|
@@ -535,8 +541,8 @@ public class TestDelegationTokenAuthenticationHandlerWithMocks {
|
|
|
}
|
|
|
|
|
|
};
|
|
|
- Mockito.when(response.getWriter()).thenReturn(printWriterCloseCount);
|
|
|
- Assert.assertFalse(noAuthCloseHandler.managementOperation(token, request,
|
|
|
+ when(response.getWriter()).thenReturn(printWriterCloseCount);
|
|
|
+ assertFalse(noAuthCloseHandler.managementOperation(token, request,
|
|
|
response));
|
|
|
} finally {
|
|
|
noAuthCloseHandler.destroy();
|