Skip to content

Commit 9182858

Browse files
move client_secret to keystore
1 parent cfd2906 commit 9182858

File tree

4 files changed

+12
-10
lines changed

4 files changed

+12
-10
lines changed

plugins/microsoft-graph-authz/src/main/java/org/elasticsearch/xpack/security/authz/microsoft/MicrosoftGraphAuthzRealm.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
import org.apache.http.message.BasicNameValuePair;
2121
import org.elasticsearch.action.ActionListener;
2222
import org.elasticsearch.common.Strings;
23+
import org.elasticsearch.common.settings.SecureString;
24+
import org.elasticsearch.common.settings.Settings;
2325
import org.elasticsearch.common.util.concurrent.ThreadContext;
2426
import org.elasticsearch.core.Tuple;
2527
import org.elasticsearch.logging.LogManager;
@@ -46,13 +48,15 @@ public class MicrosoftGraphAuthzRealm extends Realm {
4648
private final HttpClient httpClient;
4749
private final RealmConfig config;
4850
private final UserRoleMapper roleMapper;
51+
private final SecureString clientSecret;
4952

5053
public MicrosoftGraphAuthzRealm(UserRoleMapper roleMapper, RealmConfig config) {
5154
super(config);
5255

5356
this.roleMapper = roleMapper;
5457
this.config = config;
5558
this.httpClient = HttpClients.createDefault();
59+
this.clientSecret = config.getSetting(MicrosoftGraphAuthzRealmSettings.CLIENT_SECRET);
5660
}
5761

5862
@Override
@@ -110,7 +114,7 @@ private String fetchAccessToken() throws IOException, ParseException {
110114
new BasicNameValuePair("grant_type", "client_credentials"),
111115
new BasicNameValuePair("scope", "https://graph.microsoft.com/.default"),
112116
new BasicNameValuePair("client_id", config.getSetting(MicrosoftGraphAuthzRealmSettings.CLIENT_ID)),
113-
new BasicNameValuePair("client_secret", config.getSetting(MicrosoftGraphAuthzRealmSettings.CLIENT_SECRET))
117+
new BasicNameValuePair("client_secret", clientSecret.toString())
114118
)
115119
)
116120
);

plugins/microsoft-graph-authz/src/main/java/org/elasticsearch/xpack/security/authz/microsoft/MicrosoftGraphAuthzRealmSettings.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99

1010
package org.elasticsearch.xpack.security.authz.microsoft;
1111

12+
import org.elasticsearch.common.settings.SecureSetting;
13+
import org.elasticsearch.common.settings.SecureString;
1214
import org.elasticsearch.common.settings.Setting;
1315
import org.elasticsearch.xpack.core.security.authc.RealmSettings;
1416

@@ -24,10 +26,9 @@ public class MicrosoftGraphAuthzRealmSettings {
2426
Setting.Property.NodeScope
2527
);
2628

27-
public static final Setting.AffixSetting<String> CLIENT_SECRET = RealmSettings.simpleString(
29+
public static final Setting.AffixSetting<SecureString> CLIENT_SECRET = RealmSettings.secureString(
2830
REALM_TYPE,
29-
"client_secret",
30-
Setting.Property.NodeScope
31+
"client_secret"
3132
);
3233

3334
public static final Setting.AffixSetting<String> TENANT_ID = RealmSettings.simpleString(

x-pack/plugin/security/qa/microsoft-graph-authz-tests/build.gradle

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,5 @@ dependencies {
55
javaRestTestImplementation project(':x-pack:plugin:security')
66
javaRestTestImplementation testArtifact(project(":x-pack:plugin:security:qa:saml-rest-tests"), "javaRestTest")
77
clusterPlugins project(':plugins:microsoft-graph-authz')
8-
}
9-
10-
tasks.named('javaRestTest') {
11-
usesDefaultDistribution("Reason why default distribution is required")
8+
clusterModules project(":modules:analysis-common")
129
}

x-pack/plugin/security/qa/microsoft-graph-authz-tests/src/javaRestTest/java/org/elasticsearch/xpack/security/authz/microsoft/MicrosoftGraphAuthzPluginIT.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public class MicrosoftGraphAuthzPluginIT extends ESRestTestCase {
6868

6969
private static ElasticsearchCluster initTestCluster() {
7070
return ElasticsearchCluster.local()
71-
.distribution(DistributionType.DEFAULT)
71+
.module("analysis-common")
7272
.setting("xpack.security.enabled", "true")
7373
.setting("xpack.license.self_generated.type", "trial")
7474
.setting("xpack.security.authc.token.enabled", "true")
@@ -88,7 +88,7 @@ private static ElasticsearchCluster initTestCluster() {
8888
.setting("xpack.security.authc.realms.saml.saml1.authorization_realms", "microsoft_graph1")
8989
.setting("xpack.security.authc.realms.microsoft_graph.microsoft_graph1.order", "2")
9090
.setting("xpack.security.authc.realms.microsoft_graph.microsoft_graph1.client_id", CLIENT_ID)
91-
.setting("xpack.security.authc.realms.microsoft_graph.microsoft_graph1.client_secret", CLIENT_SECRET)
91+
.keystore("xpack.security.authc.realms.microsoft_graph.microsoft_graph1.client_secret", CLIENT_SECRET)
9292
.setting("xpack.security.authc.realms.microsoft_graph.microsoft_graph1.tenant_id", TENANT_ID)
9393
.setting("xpack.security.authc.realms.microsoft_graph.microsoft_graph1.graph_host", graphFixture::getBaseUrl)
9494
.setting("xpack.security.authc.realms.microsoft_graph.microsoft_graph1.access_token_host", graphFixture::getBaseUrl)

0 commit comments

Comments
 (0)