This is an automated email from the ASF dual-hosted git repository.
gyfora pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/master by this push:
new 7f5240c9f91 [FLINK-31284][tests] Increase KerberosLoginProvider test
coverage
7f5240c9f91 is described below
commit 7f5240c9f912ec68c0b18b0022147eaa27992e4f
Author: Gabor Somogyi <[email protected]>
AuthorDate: Wed Mar 1 16:52:35 2023 +0100
[FLINK-31284][tests] Increase KerberosLoginProvider test coverage
---
.../token/hadoop/KerberosLoginProviderITCase.java | 48 ++++++++++++++--------
1 file changed, 30 insertions(+), 18 deletions(-)
diff --git
a/flink-runtime/src/test/java/org/apache/flink/runtime/security/token/hadoop/KerberosLoginProviderITCase.java
b/flink-runtime/src/test/java/org/apache/flink/runtime/security/token/hadoop/KerberosLoginProviderITCase.java
index b0cd1c055a2..bbf49ce136f 100644
---
a/flink-runtime/src/test/java/org/apache/flink/runtime/security/token/hadoop/KerberosLoginProviderITCase.java
+++
b/flink-runtime/src/test/java/org/apache/flink/runtime/security/token/hadoop/KerberosLoginProviderITCase.java
@@ -23,6 +23,8 @@ import org.apache.flink.configuration.Configuration;
import org.apache.hadoop.security.UserGroupInformation;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
import org.mockito.MockedStatic;
import java.io.IOException;
@@ -49,8 +51,10 @@ import static org.mockito.Mockito.when;
*/
public class KerberosLoginProviderITCase {
- @Test
- public void isLoginPossibleMustReturnFalseByDefault() throws IOException {
+ @ParameterizedTest
+ @ValueSource(booleans = {true, false})
+ public void isLoginPossibleMustReturnFalseByDefault(boolean
supportProxyUser)
+ throws IOException {
Configuration configuration = new Configuration();
KerberosLoginProvider kerberosLoginProvider = new
KerberosLoginProvider(configuration);
@@ -58,12 +62,14 @@ public class KerberosLoginProviderITCase {
UserGroupInformation userGroupInformation =
mock(UserGroupInformation.class);
ugi.when(UserGroupInformation::getCurrentUser).thenReturn(userGroupInformation);
- assertFalse(kerberosLoginProvider.isLoginPossible(false));
+
assertFalse(kerberosLoginProvider.isLoginPossible(supportProxyUser));
}
}
- @Test
- public void isLoginPossibleMustReturnFalseWithNonKerberos() throws
IOException {
+ @ParameterizedTest
+ @ValueSource(booleans = {true, false})
+ public void isLoginPossibleMustReturnFalseWithNonKerberos(boolean
supportProxyUser)
+ throws IOException {
Configuration configuration = new Configuration();
KerberosLoginProvider kerberosLoginProvider = new
KerberosLoginProvider(configuration);
@@ -72,12 +78,14 @@ public class KerberosLoginProviderITCase {
ugi.when(UserGroupInformation::isSecurityEnabled).thenReturn(false);
ugi.when(UserGroupInformation::getCurrentUser).thenReturn(userGroupInformation);
- assertFalse(kerberosLoginProvider.isLoginPossible(false));
+
assertFalse(kerberosLoginProvider.isLoginPossible(supportProxyUser));
}
}
- @Test
- public void isLoginPossibleMustReturnTrueWithKeytab(@TempDir Path tmpDir)
throws IOException {
+ @ParameterizedTest
+ @ValueSource(booleans = {true, false})
+ public void isLoginPossibleMustReturnTrueWithKeytab(
+ boolean supportProxyUser, @TempDir Path tmpDir) throws IOException
{
Configuration configuration = new Configuration();
configuration.setString(KERBEROS_LOGIN_PRINCIPAL, "principal");
final Path keyTab = Files.createFile(tmpDir.resolve("test.keytab"));
@@ -89,12 +97,13 @@ public class KerberosLoginProviderITCase {
ugi.when(UserGroupInformation::isSecurityEnabled).thenReturn(true);
ugi.when(UserGroupInformation::getCurrentUser).thenReturn(userGroupInformation);
- assertTrue(kerberosLoginProvider.isLoginPossible(false));
+
assertTrue(kerberosLoginProvider.isLoginPossible(supportProxyUser));
}
}
- @Test
- public void isLoginPossibleMustReturnTrueWithTGT() throws IOException {
+ @ParameterizedTest
+ @ValueSource(booleans = {true, false})
+ public void isLoginPossibleMustReturnTrueWithTGT(boolean supportProxyUser)
throws IOException {
Configuration configuration = new Configuration();
configuration.setBoolean(KERBEROS_LOGIN_USETICKETCACHE, true);
KerberosLoginProvider kerberosLoginProvider = new
KerberosLoginProvider(configuration);
@@ -105,7 +114,7 @@ public class KerberosLoginProviderITCase {
ugi.when(UserGroupInformation::isSecurityEnabled).thenReturn(true);
ugi.when(UserGroupInformation::getCurrentUser).thenReturn(userGroupInformation);
- assertTrue(kerberosLoginProvider.isLoginPossible(false));
+
assertTrue(kerberosLoginProvider.isLoginPossible(supportProxyUser));
}
}
@@ -143,8 +152,10 @@ public class KerberosLoginProviderITCase {
}
}
- @Test
- public void doLoginMustLoginWithKeytab(@TempDir Path tmpDir) throws
IOException {
+ @ParameterizedTest
+ @ValueSource(booleans = {true, false})
+ public void doLoginMustLoginWithKeytab(boolean supportProxyUser, @TempDir
Path tmpDir)
+ throws IOException {
Configuration configuration = new Configuration();
configuration.setString(KERBEROS_LOGIN_PRINCIPAL, "principal");
final Path keyTab = Files.createFile(tmpDir.resolve("test.keytab"));
@@ -155,13 +166,14 @@ public class KerberosLoginProviderITCase {
UserGroupInformation userGroupInformation =
mock(UserGroupInformation.class);
ugi.when(UserGroupInformation::getCurrentUser).thenReturn(userGroupInformation);
- kerberosLoginProvider.doLogin(false);
+ kerberosLoginProvider.doLogin(supportProxyUser);
ugi.verify(() ->
UserGroupInformation.loginUserFromKeytab(anyString(), anyString()));
}
}
- @Test
- public void doLoginMustLoginWithTGT() throws IOException {
+ @ParameterizedTest
+ @ValueSource(booleans = {true, false})
+ public void doLoginMustLoginWithTGT(boolean supportProxyUser) throws
IOException {
Configuration configuration = new Configuration();
configuration.setBoolean(KERBEROS_LOGIN_USETICKETCACHE, true);
KerberosLoginProvider kerberosLoginProvider = new
KerberosLoginProvider(configuration);
@@ -171,7 +183,7 @@ public class KerberosLoginProviderITCase {
when(userGroupInformation.hasKerberosCredentials()).thenReturn(true);
ugi.when(UserGroupInformation::getCurrentUser).thenReturn(userGroupInformation);
- kerberosLoginProvider.doLogin(false);
+ kerberosLoginProvider.doLogin(supportProxyUser);
ugi.verify(() -> UserGroupInformation.loginUserFromSubject(null));
}
}