Skip to content

Commit e796769

Browse files
define managed_by under api_key field
1 parent 9d87460 commit e796769

File tree

3 files changed

+16
-8
lines changed

3 files changed

+16
-8
lines changed

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

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -792,11 +792,6 @@ public void toXContentFragment(XContentBuilder builder) throws IOException {
792792
builder.endObject();
793793
builder.field(User.Fields.AUTHENTICATION_TYPE.getPreferredName(), getAuthenticationType().name().toLowerCase(Locale.ROOT));
794794

795-
final String managedBy = (String) metadata.get(AuthenticationField.MANAGED_BY_KEY);
796-
if (managedBy != null) {
797-
builder.field("managed_by", managedBy);
798-
}
799-
800795
if (isApiKey() || isCrossClusterAccess() || isCloudApiKey()) {
801796
final String apiKeyId = (String) metadata.get(AuthenticationField.API_KEY_ID_KEY);
802797
final String apiKeyName = (String) metadata.get(AuthenticationField.API_KEY_NAME_KEY);
@@ -809,6 +804,12 @@ public void toXContentFragment(XContentBuilder builder) throws IOException {
809804
final boolean internal = (boolean) metadata.get(AuthenticationField.API_KEY_INTERNAL_KEY);
810805
apiKeyField.put("internal", internal);
811806
}
807+
final String managedBy = (String) metadata.get(AuthenticationField.API_KEY_MANAGED_BY_KEY);
808+
if (managedBy != null) {
809+
apiKeyField.put("managed_by", managedBy);
810+
} else {
811+
apiKeyField.put("managed_by", isCloudApiKey() ? ManagedBy.CLOUD.getDisplayName() : ManagedBy.ELASTICSEARCH.getDisplayName());
812+
}
812813
builder.field("api_key", Collections.unmodifiableMap(apiKeyField));
813814
}
814815
}
@@ -1662,11 +1663,17 @@ public enum AuthenticationType {
16621663
}
16631664

16641665
/**
1665-
* Indicates if the credentials are managed by Elasticsearch or by the cloud.
1666+
* Indicates if credentials are managed by Elasticsearch or by the Cloud.
16661667
*/
16671668
public enum ManagedBy {
1669+
16681670
CLOUD,
1669-
ELASTICSEARCH
1671+
1672+
ELASTICSEARCH;
1673+
1674+
public String getDisplayName() {
1675+
return name().toLowerCase(Locale.ROOT);
1676+
}
16701677
}
16711678

16721679
public static class AuthenticationSerializationHelper {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@ public final class AuthenticationField {
2323
public static final String API_KEY_CREATOR_REALM_TYPE = "_security_api_key_creator_realm_type";
2424
public static final String API_KEY_ID_KEY = "_security_api_key_id";
2525
public static final String API_KEY_NAME_KEY = "_security_api_key_name";
26+
public static final String API_KEY_MANAGED_BY_KEY = "_security_api_key_managed_by";
2627
public static final String API_KEY_INTERNAL_KEY = "_security_api_key_internal";
2728
public static final String API_KEY_TYPE_KEY = "_security_api_key_type";
2829
public static final String API_KEY_METADATA_KEY = "_security_api_key_metadata";
2930
public static final String API_KEY_ROLE_DESCRIPTORS_KEY = "_security_api_key_role_descriptors";
3031
public static final String API_KEY_LIMITED_ROLE_DESCRIPTORS_KEY = "_security_api_key_limited_by_role_descriptors";
31-
public static final String MANAGED_BY_KEY = "_security_managed_by";
3232

3333
public static final String ANONYMOUS_REALM_NAME = "__anonymous";
3434
public static final String ANONYMOUS_REALM_TYPE = "__anonymous";

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1429,6 +1429,7 @@ static void validateApiKeyTypeAndExpiration(
14291429
authResultMetadata.put(AuthenticationField.API_KEY_ID_KEY, credentials.getId());
14301430
authResultMetadata.put(AuthenticationField.API_KEY_NAME_KEY, apiKeyDoc.name);
14311431
authResultMetadata.put(AuthenticationField.API_KEY_TYPE_KEY, apiKeyDoc.type.value());
1432+
authResultMetadata.put(AuthenticationField.API_KEY_MANAGED_BY_KEY, Authentication.ManagedBy.ELASTICSEARCH.getDisplayName());
14321433
if (apiKeyDoc.metadataFlattened != null) {
14331434
authResultMetadata.put(AuthenticationField.API_KEY_METADATA_KEY, apiKeyDoc.metadataFlattened);
14341435
}

0 commit comments

Comments
 (0)