Skip to content

Commit 374a122

Browse files
committed
Add periodic PKC JWK set reloading capability to JWT realm.
1 parent 5ef1c35 commit 374a122

File tree

13 files changed

+530
-95
lines changed

13 files changed

+530
-95
lines changed

x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/security/authc/jwt/JwtRealmSettings.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,30 @@ private static Set<Setting.AffixSetting<SecureString>> getSecureSettings() {
249249
Setting.Property.NodeScope
250250
);
251251

252+
public static final Setting.AffixSetting<Boolean> PKC_JWKSET_RELOAD_ENABLED = Setting.affixKeySetting(
253+
RealmSettings.realmSettingPrefix(TYPE),
254+
"pkc_jwkset_reload_enabled",
255+
key -> Setting.boolSetting(key, false, Setting.Property.NodeScope)
256+
);
257+
258+
public static final Setting.AffixSetting<TimeValue> PKC_JWKSET_RELOAD_FILE_INTERVAL = Setting.affixKeySetting(
259+
RealmSettings.realmSettingPrefix(TYPE),
260+
"pkc_jwkset_reload_file_interval",
261+
key -> Setting.timeSetting(key, TimeValue.timeValueMinutes(5), TimeValue.timeValueMinutes(5), Setting.Property.NodeScope)
262+
);
263+
264+
public static final Setting.AffixSetting<TimeValue> PKC_JWKSET_RELOAD_URL_INTERVAL_MIN = Setting.affixKeySetting(
265+
RealmSettings.realmSettingPrefix(TYPE),
266+
"pkc_jwkset_reload_url_interval_min",
267+
key -> Setting.timeSetting(key, TimeValue.timeValueMinutes(5), TimeValue.timeValueMinutes(5), Setting.Property.NodeScope)
268+
);
269+
270+
public static final Setting.AffixSetting<TimeValue> PKC_JWKSET_RELOAD_URL_INTERVAL_MAX = Setting.affixKeySetting(
271+
RealmSettings.realmSettingPrefix(TYPE),
272+
"pkc_jwkset_reload_url_interval_max",
273+
key -> Setting.timeSetting(key, TimeValue.timeValueDays(5), TimeValue.timeValueMinutes(5), Setting.Property.NodeScope)
274+
);
275+
252276
public static final Setting.AffixSetting<SecureString> HMAC_JWKSET = RealmSettings.secureString(TYPE, "hmac_jwkset");
253277
public static final Setting.AffixSetting<SecureString> HMAC_KEY = RealmSettings.secureString(TYPE, "hmac_key");
254278

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ public static Map<String, Realm.Factory> getFactories(
171171
config -> new OpenIdConnectRealm(config, sslService, userRoleMapper, resourceWatcherService),
172172
// JWT realm
173173
JwtRealmSettings.TYPE,
174-
config -> new JwtRealm(config, sslService, userRoleMapper)
174+
config -> new JwtRealm(config, sslService, userRoleMapper, threadPool)
175175
);
176176
}
177177

0 commit comments

Comments
 (0)