Ensure that security client is used in x-pack
This commit is fixing an issue with the build. Currently we have a scenario where a call to build a transport client is not using the security client. This modifies the settings source to ensure that the security client is used. Original commit: elastic/x-pack-elasticsearch@2d6ea1f4e4
This commit is contained in:
parent
d09fc8ceca
commit
1603823f2c
|
@ -9,6 +9,7 @@ import org.elasticsearch.ElasticsearchException;
|
||||||
import org.elasticsearch.analysis.common.CommonAnalysisPlugin;
|
import org.elasticsearch.analysis.common.CommonAnalysisPlugin;
|
||||||
import org.elasticsearch.common.Strings;
|
import org.elasticsearch.common.Strings;
|
||||||
import org.elasticsearch.common.io.PathUtils;
|
import org.elasticsearch.common.io.PathUtils;
|
||||||
|
import org.elasticsearch.common.network.NetworkModule;
|
||||||
import org.elasticsearch.common.settings.MockSecureSettings;
|
import org.elasticsearch.common.settings.MockSecureSettings;
|
||||||
import org.elasticsearch.common.settings.SecureSettings;
|
import org.elasticsearch.common.settings.SecureSettings;
|
||||||
import org.elasticsearch.common.settings.SecureString;
|
import org.elasticsearch.common.settings.SecureString;
|
||||||
|
@ -138,8 +139,13 @@ public class SecuritySettingsSource extends ClusterDiscoveryConfiguration.Unicas
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Settings transportClientSettings() {
|
public Settings transportClientSettings() {
|
||||||
Settings.Builder builder = Settings.builder().put(super.transportClientSettings());
|
Settings superSettings = super.transportClientSettings();
|
||||||
|
Settings.Builder builder = Settings.builder().put(superSettings);
|
||||||
addClientSSLSettings(builder, "");
|
addClientSSLSettings(builder, "");
|
||||||
|
if (NetworkModule.TRANSPORT_TYPE_SETTING.exists(superSettings) == false) {
|
||||||
|
builder.put(NetworkModule.TRANSPORT_TYPE_SETTING.getKey(), Security.NAME4);
|
||||||
|
}
|
||||||
|
|
||||||
if (randomBoolean()) {
|
if (randomBoolean()) {
|
||||||
builder.put(Security.USER_SETTING.getKey(),
|
builder.put(Security.USER_SETTING.getKey(),
|
||||||
transportClientUsername() + ":" + new String(transportClientPassword().getChars()));
|
transportClientUsername() + ":" + new String(transportClientPassword().getChars()));
|
||||||
|
|
|
@ -56,7 +56,7 @@ public class RestAuthenticateActionTests extends SecurityIntegTestCase {
|
||||||
ObjectPath objectPath = ObjectPath.createFromResponse(response);
|
ObjectPath objectPath = ObjectPath.createFromResponse(response);
|
||||||
assertThat(objectPath.evaluate("username").toString(), equalTo(SecuritySettingsSource.TEST_USER_NAME));
|
assertThat(objectPath.evaluate("username").toString(), equalTo(SecuritySettingsSource.TEST_USER_NAME));
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
List<String> roles = (List<String>) objectPath.evaluate("roles");
|
List<String> roles = objectPath.evaluate("roles");
|
||||||
assertThat(roles.size(), is(1));
|
assertThat(roles.size(), is(1));
|
||||||
assertThat(roles, contains(SecuritySettingsSource.TEST_ROLE));
|
assertThat(roles, contains(SecuritySettingsSource.TEST_ROLE));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue