|
@@ -35,6 +35,7 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|
|
import java.util.concurrent.atomic.AtomicReference;
|
|
|
|
|
|
import static java.util.Collections.emptyMap;
|
|
|
+import static org.elasticsearch.xpack.core.security.authc.RealmSettings.getFullSettingKey;
|
|
|
import static org.hamcrest.Matchers.arrayContaining;
|
|
|
import static org.hamcrest.Matchers.containsString;
|
|
|
import static org.hamcrest.Matchers.equalTo;
|
|
@@ -70,9 +71,10 @@ public class CachingUsernamePasswordRealmTests extends ESTestCase {
|
|
|
final RealmConfig.RealmIdentifier identifier = new RealmConfig.RealmIdentifier("caching", "test_realm");
|
|
|
Settings settings = Settings.builder()
|
|
|
.put(globalSettings)
|
|
|
- .put(RealmSettings.getFullSettingKey(identifier, CachingUsernamePasswordRealmSettings.CACHE_HASH_ALGO_SETTING), cachingHashAlgo)
|
|
|
- .put(RealmSettings.getFullSettingKey(identifier, CachingUsernamePasswordRealmSettings.CACHE_MAX_USERS_SETTING), maxUsers)
|
|
|
- .put(RealmSettings.getFullSettingKey(identifier, CachingUsernamePasswordRealmSettings.CACHE_TTL_SETTING), ttl)
|
|
|
+ .put(getFullSettingKey(identifier, CachingUsernamePasswordRealmSettings.CACHE_HASH_ALGO_SETTING), cachingHashAlgo)
|
|
|
+ .put(getFullSettingKey(identifier, CachingUsernamePasswordRealmSettings.CACHE_MAX_USERS_SETTING), maxUsers)
|
|
|
+ .put(getFullSettingKey(identifier, CachingUsernamePasswordRealmSettings.CACHE_TTL_SETTING), ttl)
|
|
|
+ .put(getFullSettingKey(identifier, RealmSettings.ORDER_SETTING), 0)
|
|
|
.build();
|
|
|
|
|
|
RealmConfig config = new RealmConfig(identifier, settings,
|
|
@@ -95,7 +97,8 @@ public class CachingUsernamePasswordRealmTests extends ESTestCase {
|
|
|
final RealmConfig.RealmIdentifier identifier = new RealmConfig.RealmIdentifier("caching", "test_realm");
|
|
|
final Settings settings = Settings.builder()
|
|
|
.put(globalSettings)
|
|
|
- .put(RealmSettings.getFullSettingKey(identifier, CachingUsernamePasswordRealmSettings.CACHE_TTL_SETTING), -1)
|
|
|
+ .put(getFullSettingKey(identifier, CachingUsernamePasswordRealmSettings.CACHE_TTL_SETTING), -1)
|
|
|
+ .put(getFullSettingKey(identifier, RealmSettings.ORDER_SETTING), 0)
|
|
|
.build();
|
|
|
|
|
|
final RealmConfig config =
|
|
@@ -275,7 +278,8 @@ public class CachingUsernamePasswordRealmTests extends ESTestCase {
|
|
|
final RealmConfig.RealmIdentifier identifier = new RealmConfig.RealmIdentifier("caching", "test_cache_ttl");
|
|
|
Settings settings = Settings.builder()
|
|
|
.put(globalSettings)
|
|
|
- .put(RealmSettings.getFullSettingKey(identifier, CachingUsernamePasswordRealmSettings.CACHE_TTL_SETTING), ttl)
|
|
|
+ .put(getFullSettingKey(identifier, CachingUsernamePasswordRealmSettings.CACHE_TTL_SETTING), ttl)
|
|
|
+ .put(getFullSettingKey(identifier, RealmSettings.ORDER_SETTING), 0)
|
|
|
.build();
|
|
|
RealmConfig config = new RealmConfig(identifier, settings,
|
|
|
TestEnvironment.newEnvironment(globalSettings), new ThreadContext(Settings.EMPTY));
|
|
@@ -306,7 +310,8 @@ public class CachingUsernamePasswordRealmTests extends ESTestCase {
|
|
|
final RealmConfig.RealmIdentifier identifier = new RealmConfig.RealmIdentifier("caching", "test_cache_ttl");
|
|
|
Settings settings = Settings.builder()
|
|
|
.put(globalSettings)
|
|
|
- .put(RealmSettings.getFullSettingKey(identifier, CachingUsernamePasswordRealmSettings.CACHE_TTL_SETTING), ttl)
|
|
|
+ .put(getFullSettingKey(identifier, CachingUsernamePasswordRealmSettings.CACHE_TTL_SETTING), ttl)
|
|
|
+ .put(getFullSettingKey(identifier, RealmSettings.ORDER_SETTING), 0)
|
|
|
.build();
|
|
|
RealmConfig config = new RealmConfig(identifier, settings,
|
|
|
TestEnvironment.newEnvironment(globalSettings), new ThreadContext(Settings.EMPTY));
|
|
@@ -412,7 +417,11 @@ public class CachingUsernamePasswordRealmTests extends ESTestCase {
|
|
|
final AtomicInteger authCounter = new AtomicInteger(0);
|
|
|
final Hasher pwdHasher = Hasher.resolve(randomFrom("pbkdf2", "pbkdf2_1000", "bcrypt", "bcrypt9"));
|
|
|
final String passwordHash = new String(pwdHasher.hash(password));
|
|
|
- RealmConfig config = new RealmConfig(new RealmConfig.RealmIdentifier("caching", "test_realm"), globalSettings,
|
|
|
+ final RealmConfig.RealmIdentifier realmIdentifier = new RealmConfig.RealmIdentifier("caching", "test_realm");
|
|
|
+ RealmConfig config = new RealmConfig(
|
|
|
+ realmIdentifier,
|
|
|
+ Settings.builder().put(globalSettings)
|
|
|
+ .put(getFullSettingKey(realmIdentifier, RealmSettings.ORDER_SETTING), 0).build(),
|
|
|
TestEnvironment.newEnvironment(globalSettings), new ThreadContext(Settings.EMPTY));
|
|
|
final CachingUsernamePasswordRealm realm = new CachingUsernamePasswordRealm(config, threadPool) {
|
|
|
@Override
|
|
@@ -478,7 +487,11 @@ public class CachingUsernamePasswordRealmTests extends ESTestCase {
|
|
|
final AtomicInteger authCounter = new AtomicInteger(0);
|
|
|
final Hasher pwdHasher = Hasher.resolve(randomFrom("pbkdf2", "pbkdf2_1000", "bcrypt", "bcrypt9"));
|
|
|
final String passwordHash = new String(pwdHasher.hash(password));
|
|
|
- RealmConfig config = new RealmConfig(new RealmConfig.RealmIdentifier("caching", "test_realm"), globalSettings,
|
|
|
+ final RealmConfig.RealmIdentifier realmIdentifier = new RealmConfig.RealmIdentifier("caching", "test_realm");
|
|
|
+ RealmConfig config = new RealmConfig(
|
|
|
+ realmIdentifier,
|
|
|
+ Settings.builder().put(globalSettings)
|
|
|
+ .put(getFullSettingKey(realmIdentifier, RealmSettings.ORDER_SETTING), 0).build(),
|
|
|
TestEnvironment.newEnvironment(globalSettings), new ThreadContext(Settings.EMPTY));
|
|
|
|
|
|
final int numberOfProcessors = Runtime.getRuntime().availableProcessors();
|
|
@@ -561,7 +574,10 @@ public class CachingUsernamePasswordRealmTests extends ESTestCase {
|
|
|
final SecureString randomPassword = new SecureString(randomAlphaOfLength(password.length()).toCharArray());
|
|
|
final Hasher localHasher = Hasher.resolve(randomFrom("pbkdf2", "pbkdf2_1000", "bcrypt", "bcrypt9"));
|
|
|
final String passwordHash = new String(localHasher.hash(password));
|
|
|
- RealmConfig config = new RealmConfig(new RealmConfig.RealmIdentifier("caching", "test_realm"), globalSettings,
|
|
|
+ final RealmConfig.RealmIdentifier realmIdentifier = new RealmConfig.RealmIdentifier("caching", "test_realm");
|
|
|
+ RealmConfig config = new RealmConfig(realmIdentifier,
|
|
|
+ Settings.builder().put(globalSettings)
|
|
|
+ .put(getFullSettingKey(realmIdentifier, RealmSettings.ORDER_SETTING), 0).build(),
|
|
|
TestEnvironment.newEnvironment(globalSettings), new ThreadContext(Settings.EMPTY));
|
|
|
final CachingUsernamePasswordRealm realm = new CachingUsernamePasswordRealm(config, threadPool) {
|
|
|
@Override
|
|
@@ -629,8 +645,11 @@ public class CachingUsernamePasswordRealmTests extends ESTestCase {
|
|
|
final String username = "username";
|
|
|
final AtomicInteger lookupCounter = new AtomicInteger(0);
|
|
|
|
|
|
- RealmConfig config = new RealmConfig(new RealmConfig.RealmIdentifier("caching", "test_realm"), globalSettings,
|
|
|
- TestEnvironment.newEnvironment(globalSettings), new ThreadContext(Settings.EMPTY));
|
|
|
+ final RealmConfig.RealmIdentifier realmIdentifier = new RealmConfig.RealmIdentifier("caching", "test_realm");
|
|
|
+ RealmConfig config = new RealmConfig(realmIdentifier,
|
|
|
+ Settings.builder().put(globalSettings)
|
|
|
+ .put(getFullSettingKey(realmIdentifier, RealmSettings.ORDER_SETTING), 0).build(),
|
|
|
+ TestEnvironment.newEnvironment(globalSettings), new ThreadContext(Settings.EMPTY));
|
|
|
final CachingUsernamePasswordRealm realm = new CachingUsernamePasswordRealm(config, threadPool) {
|
|
|
@Override
|
|
|
protected void doAuthenticate(UsernamePasswordToken token, ActionListener<AuthenticationResult> listener) {
|
|
@@ -688,8 +707,9 @@ public class CachingUsernamePasswordRealmTests extends ESTestCase {
|
|
|
public void testAuthenticateDisabled() throws Exception {
|
|
|
final RealmConfig.RealmIdentifier realmId = new RealmConfig.RealmIdentifier("caching", "test_authentication_disabled");
|
|
|
final Settings settings = Settings.builder()
|
|
|
- .put(RealmSettings.getFullSettingKey(realmId, CachingUsernamePasswordRealmSettings.AUTHC_ENABLED_SETTING), false)
|
|
|
+ .put(getFullSettingKey(realmId, CachingUsernamePasswordRealmSettings.AUTHC_ENABLED_SETTING), false)
|
|
|
.put(globalSettings)
|
|
|
+ .put(getFullSettingKey(realmId, RealmSettings.ORDER_SETTING), 0)
|
|
|
.build();
|
|
|
final Environment env = TestEnvironment.newEnvironment(settings);
|
|
|
final ThreadContext threadContext = new ThreadContext(settings);
|
|
@@ -717,9 +737,16 @@ public class CachingUsernamePasswordRealmTests extends ESTestCase {
|
|
|
static class FailingAuthenticationRealm extends CachingUsernamePasswordRealm {
|
|
|
|
|
|
FailingAuthenticationRealm(Settings global, ThreadPool threadPool) {
|
|
|
- super(new RealmConfig(new RealmConfig.RealmIdentifier("caching", "failing-test"), global,
|
|
|
- TestEnvironment.newEnvironment(global),
|
|
|
- threadPool.getThreadContext()), threadPool);
|
|
|
+ super(new RealmConfig(
|
|
|
+ new RealmConfig.RealmIdentifier("caching", "failing-test"),
|
|
|
+ Settings.builder()
|
|
|
+ .put(global)
|
|
|
+ .put(getFullSettingKey(
|
|
|
+ new RealmConfig.RealmIdentifier("caching", "failing-test"),
|
|
|
+ RealmSettings.ORDER_SETTING), 0)
|
|
|
+ .build(),
|
|
|
+ TestEnvironment.newEnvironment(global),
|
|
|
+ threadPool.getThreadContext()), threadPool);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -736,9 +763,14 @@ public class CachingUsernamePasswordRealmTests extends ESTestCase {
|
|
|
static class ThrowingAuthenticationRealm extends CachingUsernamePasswordRealm {
|
|
|
|
|
|
ThrowingAuthenticationRealm(Settings globalSettings, ThreadPool threadPool) {
|
|
|
- super(new RealmConfig(new RealmConfig.RealmIdentifier("caching", "throwing-test"), globalSettings,
|
|
|
- TestEnvironment.newEnvironment(globalSettings),
|
|
|
- threadPool.getThreadContext()), threadPool);
|
|
|
+ super(new RealmConfig(
|
|
|
+ new RealmConfig.RealmIdentifier("caching", "throwing-test"),
|
|
|
+ Settings.builder()
|
|
|
+ .put(globalSettings)
|
|
|
+ .put(getFullSettingKey(new RealmConfig.RealmIdentifier("caching", "throwing-test"), RealmSettings.ORDER_SETTING), 0)
|
|
|
+ .build(),
|
|
|
+ TestEnvironment.newEnvironment(globalSettings),
|
|
|
+ threadPool.getThreadContext()), threadPool);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -760,9 +792,14 @@ public class CachingUsernamePasswordRealmTests extends ESTestCase {
|
|
|
private boolean usersEnabled = true;
|
|
|
|
|
|
AlwaysAuthenticateCachingRealm(Settings globalSettings, ThreadPool threadPool) {
|
|
|
- this(new RealmConfig(new RealmConfig.RealmIdentifier("caching", "always-test"), globalSettings,
|
|
|
- TestEnvironment.newEnvironment(globalSettings),
|
|
|
- threadPool.getThreadContext()), threadPool);
|
|
|
+ this(new RealmConfig(
|
|
|
+ new RealmConfig.RealmIdentifier("caching", "always-test"),
|
|
|
+ Settings.builder()
|
|
|
+ .put(globalSettings)
|
|
|
+ .put(getFullSettingKey(new RealmConfig.RealmIdentifier("caching", "always-test"), RealmSettings.ORDER_SETTING), 0)
|
|
|
+ .build(),
|
|
|
+ TestEnvironment.newEnvironment(globalSettings),
|
|
|
+ threadPool.getThreadContext()), threadPool);
|
|
|
}
|
|
|
|
|
|
AlwaysAuthenticateCachingRealm(RealmConfig config, ThreadPool threadPool) {
|