Skip to content

Commit f0df110

Browse files
authored
[Kerberos] Refactoring and remove configs with defaults (#32152)
This commit does some refactoring to remove support package and move classes to kerberos package. That was the only class in that package, so no need for it to be in separate package. Changes done to use default values for jaas configuration options for the ones which we can use defaults. Fix couple of random failures in tests. Modified `refreshKrb5Config` to use default value `false` in KerberosTicketValidator. If the krb5.conf file is modified then we will need to restart JVM as the config will not be refreshed. For testing, `refreshKrb5Config` is set to `true` as we keep changing the kdc port. This is set in SpnegoClient and only for tests.
1 parent 0e180b3 commit f0df110

File tree

13 files changed

+21
-31
lines changed

13 files changed

+21
-31
lines changed

x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/authc/kerberos/KerberosRealm.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import org.elasticsearch.xpack.core.security.authc.RealmConfig;
2121
import org.elasticsearch.xpack.core.security.authc.kerberos.KerberosRealmSettings;
2222
import org.elasticsearch.xpack.core.security.user.User;
23-
import org.elasticsearch.xpack.security.authc.kerberos.support.KerberosTicketValidator;
2423
import org.elasticsearch.xpack.security.authc.support.CachingRealm;
2524
import org.elasticsearch.xpack.security.authc.support.UserRoleMapper;
2625
import org.elasticsearch.xpack.security.authc.support.mapper.NativeRoleMappingStore;
Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* you may not use this file except in compliance with the Elastic License.
55
*/
66

7-
package org.elasticsearch.xpack.security.authc.kerberos.support;
7+
package org.elasticsearch.xpack.security.authc.kerberos;
88

99
import org.apache.logging.log4j.Logger;
1010
import org.elasticsearch.ExceptionsHelper;
@@ -262,8 +262,6 @@ public AppConfigurationEntry[] getAppConfigurationEntry(final String name) {
262262
options.put("useKeyTab", Boolean.TRUE.toString());
263263
options.put("storeKey", Boolean.TRUE.toString());
264264
options.put("doNotPrompt", Boolean.TRUE.toString());
265-
options.put("renewTGT", Boolean.FALSE.toString());
266-
options.put("refreshKrb5Config", Boolean.TRUE.toString());
267265
options.put("isInitiator", Boolean.FALSE.toString());
268266
options.put("debug", Boolean.toString(krbDebug));
269267

x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authc/kerberos/KerberosRealmAuthenticateFailedTests.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -67,18 +67,17 @@ public void testAuthenticateDifferentFailureScenarios() throws LoginException, G
6767
final boolean nullKerberosAuthnToken = rarely();
6868
final KerberosAuthenticationToken kerberosAuthenticationToken =
6969
nullKerberosAuthnToken ? null : new KerberosAuthenticationToken(decodedTicket);
70-
71-
final PlainActionFuture<AuthenticationResult> future = new PlainActionFuture<>();
72-
kerberosRealm.authenticate(kerberosAuthenticationToken, future);
73-
AuthenticationResult result = future.actionGet();
74-
assertThat(result, is(notNullValue()));
7570
if (nullKerberosAuthnToken) {
76-
assertThat(result.getStatus(), is(equalTo(AuthenticationResult.Status.CONTINUE)));
71+
expectThrows(AssertionError.class,
72+
() -> kerberosRealm.authenticate(kerberosAuthenticationToken, PlainActionFuture.newFuture()));
7773
} else {
74+
final PlainActionFuture<AuthenticationResult> future = new PlainActionFuture<>();
75+
kerberosRealm.authenticate(kerberosAuthenticationToken, future);
76+
AuthenticationResult result = future.actionGet();
77+
assertThat(result, is(notNullValue()));
7878
if (validTicket) {
7979
final String expectedUsername = maybeRemoveRealmName(username);
80-
final User expectedUser = new User(expectedUsername, roles.toArray(new String[roles.size()]), null, null, null,
81-
true);
80+
final User expectedUser = new User(expectedUsername, roles.toArray(new String[roles.size()]), null, null, null, true);
8281
assertSuccessAuthenticationResult(expectedUser, outToken, result);
8382
} else {
8483
assertThat(result.getStatus(), is(equalTo(AuthenticationResult.Status.TERMINATE)));

x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authc/kerberos/KerberosRealmBootstrapCheckTests.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import org.elasticsearch.xpack.core.security.authc.RealmSettings;
1515
import org.elasticsearch.xpack.core.security.authc.kerberos.KerberosRealmSettings;
1616
import org.elasticsearch.xpack.core.security.authc.pki.PkiRealmSettings;
17-
import org.elasticsearch.xpack.security.authc.kerberos.support.KerberosTestCase;
1817

1918
import java.io.IOException;
2019
import java.nio.file.Path;

x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authc/kerberos/KerberosRealmCacheTests.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import org.elasticsearch.xpack.core.security.authc.AuthenticationResult;
1313
import org.elasticsearch.xpack.core.security.authc.kerberos.KerberosRealmSettings;
1414
import org.elasticsearch.xpack.core.security.user.User;
15-
import org.elasticsearch.xpack.security.authc.kerberos.support.KerberosTestCase;
1615
import org.elasticsearch.xpack.security.authc.support.UserRoleMapper.UserData;
1716
import org.ietf.jgss.GSSException;
1817

x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authc/kerberos/KerberosRealmSettingsTests.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import org.elasticsearch.common.unit.TimeValue;
1111
import org.elasticsearch.test.ESTestCase;
1212
import org.elasticsearch.xpack.core.security.authc.kerberos.KerberosRealmSettings;
13-
import org.elasticsearch.xpack.security.authc.kerberos.support.KerberosTestCase;
1413

1514
import java.io.IOException;
1615
import java.nio.file.Files;

x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authc/kerberos/KerberosRealmTestCase.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,12 @@
66

77
package org.elasticsearch.xpack.security.authc.kerberos;
88

9-
import com.google.common.collect.Sets;
10-
119
import org.elasticsearch.action.ActionListener;
1210
import org.elasticsearch.client.Client;
1311
import org.elasticsearch.common.collect.Tuple;
1412
import org.elasticsearch.common.settings.Settings;
1513
import org.elasticsearch.common.util.concurrent.ThreadContext;
14+
import org.elasticsearch.common.util.set.Sets;
1615
import org.elasticsearch.env.TestEnvironment;
1716
import org.elasticsearch.test.ESTestCase;
1817
import org.elasticsearch.threadpool.TestThreadPool;
@@ -23,8 +22,6 @@
2322
import org.elasticsearch.xpack.core.security.authc.kerberos.KerberosRealmSettings;
2423
import org.elasticsearch.xpack.core.security.support.Exceptions;
2524
import org.elasticsearch.xpack.core.security.user.User;
26-
import org.elasticsearch.xpack.security.authc.kerberos.support.KerberosTestCase;
27-
import org.elasticsearch.xpack.security.authc.kerberos.support.KerberosTicketValidator;
2825
import org.elasticsearch.xpack.security.authc.support.UserRoleMapper;
2926
import org.elasticsearch.xpack.security.authc.support.mapper.NativeRoleMappingStore;
3027
import org.elasticsearch.xpack.security.support.SecurityIndexManager;
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* you may not use this file except in compliance with the Elastic License.
55
*/
66

7-
package org.elasticsearch.xpack.security.authc.kerberos.support;
7+
package org.elasticsearch.xpack.security.authc.kerberos;
88

99
import org.apache.logging.log4j.Logger;
1010
import org.elasticsearch.ExceptionsHelper;
@@ -69,6 +69,7 @@ public abstract class KerberosTestCase extends ESTestCase {
6969
unsupportedLocaleLanguages.add("hi");
7070
unsupportedLocaleLanguages.add("uz");
7171
unsupportedLocaleLanguages.add("fa");
72+
unsupportedLocaleLanguages.add("ks");
7273
}
7374

7475
@BeforeClass
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* you may not use this file except in compliance with the Elastic License.
55
*/
66

7-
package org.elasticsearch.xpack.security.authc.kerberos.support;
7+
package org.elasticsearch.xpack.security.authc.kerberos;
88

99
import org.elasticsearch.action.support.PlainActionFuture;
1010
import org.elasticsearch.common.collect.Tuple;
@@ -13,6 +13,7 @@
1313
import org.elasticsearch.env.Environment;
1414
import org.elasticsearch.env.TestEnvironment;
1515
import org.elasticsearch.xpack.core.security.authc.kerberos.KerberosRealmSettings;
16+
import org.elasticsearch.xpack.security.authc.kerberos.KerberosTicketValidator;
1617
import org.ietf.jgss.GSSException;
1718

1819
import java.io.IOException;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* you may not use this file except in compliance with the Elastic License.
55
*/
66

7-
package org.elasticsearch.xpack.security.authc.kerberos.support;
7+
package org.elasticsearch.xpack.security.authc.kerberos;
88

99
import com.unboundid.ldap.listener.InMemoryDirectoryServer;
1010
import com.unboundid.ldap.listener.InMemoryDirectoryServerConfig;

0 commit comments

Comments
 (0)