Skip to content

Commit 6661c6f

Browse files
committed
fixup!
1 parent 58fbe58 commit 6661c6f

File tree

2 files changed

+18
-21
lines changed

2 files changed

+18
-21
lines changed

x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/support/SecurityIndexManager.java

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@
4646
import org.elasticsearch.rest.RestStatus;
4747
import org.elasticsearch.threadpool.Scheduler;
4848
import org.elasticsearch.xcontent.XContentType;
49-
import org.elasticsearch.xpack.core.security.authc.support.mapper.ExpressionRoleMapping;
5049
import org.elasticsearch.xpack.core.security.authz.RoleMappingMetadata;
5150
import org.elasticsearch.xpack.security.SecurityFeatures;
5251
import org.elasticsearch.xpack.security.action.rolemapping.ReservedRoleMappingAction;
@@ -288,11 +287,12 @@ public void clusterChanged(ClusterChangedEvent event) {
288287
Tuple<Boolean, Boolean> available = checkIndexAvailable(event.state());
289288
final boolean indexAvailableForWrite = available.v1();
290289
final boolean indexAvailableForSearch = available.v2();
291-
final Set<ExpressionRoleMapping> reservedStateRoleMappings = RoleMappingMetadata.getFromClusterState(event.state())
292-
.getRoleMappings();
293-
final boolean clusterStateRoleMappingsSynced = reservedStateRoleMappings.size() == ReservedRoleMappingAction
294-
.getFileSettingsMetadataHandlerRoleMappingKeys(event.state())
295-
.size();
290+
final Set<String> reservedStateRoleMappingNames = ReservedRoleMappingAction.getFileSettingsMetadataHandlerRoleMappingKeys(
291+
event.state()
292+
);
293+
final boolean clusterStateRoleMappingsSynced = reservedStateRoleMappingNames.size() == RoleMappingMetadata.getFromClusterState(
294+
event.state()
295+
).getRoleMappings().size();
296296
final boolean mappingIsUpToDate = indexMetadata == null || checkIndexMappingUpToDate(event.state());
297297
final int migrationsVersion = getMigrationVersionFromIndexMetadata(indexMetadata);
298298
final SystemIndexDescriptor.MappingsVersion minClusterMappingVersion = getMinSecurityIndexMappingVersion(event.state());
@@ -334,7 +334,7 @@ public void clusterChanged(ClusterChangedEvent event) {
334334
allSecurityFeatures.stream()
335335
.filter(feature -> featureService.clusterHasFeature(event.state(), feature))
336336
.collect(Collectors.toSet()),
337-
reservedStateRoleMappings
337+
reservedStateRoleMappingNames
338338
);
339339
this.state = newState;
340340

@@ -345,8 +345,8 @@ public void clusterChanged(ClusterChangedEvent event) {
345345
}
346346
}
347347

348-
public Set<ExpressionRoleMapping> getReservedStateRoleMappings() {
349-
return state.reservedStateRoleMappings;
348+
public Set<String> getReservedStateRoleMappingNames() {
349+
return state.reservedStateRoleMappingNames;
350350
}
351351

352352
public static int getMigrationVersionFromIndexMetadata(IndexMetadata indexMetadata) {
@@ -715,7 +715,7 @@ public static class State {
715715
public final IndexMetadata.State indexState;
716716
public final String indexUUID;
717717
public final Set<NodeFeature> securityFeatures;
718-
public final Set<ExpressionRoleMapping> reservedStateRoleMappings;
718+
public final Set<String> reservedStateRoleMappingNames;
719719

720720
public State(
721721
Instant creationTime,
@@ -733,7 +733,7 @@ public State(
733733
IndexMetadata.State indexState,
734734
String indexUUID,
735735
Set<NodeFeature> securityFeatures,
736-
Set<ExpressionRoleMapping> reservedStateRoleMappings
736+
Set<String> reservedStateRoleMappingNames
737737
) {
738738
this.creationTime = creationTime;
739739
this.isIndexUpToDate = isIndexUpToDate;
@@ -750,7 +750,7 @@ public State(
750750
this.indexState = indexState;
751751
this.indexUUID = indexUUID;
752752
this.securityFeatures = securityFeatures;
753-
this.reservedStateRoleMappings = reservedStateRoleMappings;
753+
this.reservedStateRoleMappingNames = reservedStateRoleMappingNames;
754754
}
755755

756756
@Override
@@ -772,7 +772,7 @@ public boolean equals(Object o) {
772772
&& indexHealth == state.indexHealth
773773
&& indexState == state.indexState
774774
&& Objects.equals(securityFeatures, state.securityFeatures)
775-
&& Objects.equals(reservedStateRoleMappings, state.reservedStateRoleMappings);
775+
&& Objects.equals(reservedStateRoleMappingNames, state.reservedStateRoleMappingNames);
776776
}
777777

778778
public boolean indexExists() {
@@ -795,7 +795,7 @@ public int hashCode() {
795795
concreteIndexName,
796796
indexHealth,
797797
securityFeatures,
798-
reservedStateRoleMappings
798+
reservedStateRoleMappingNames
799799
);
800800
}
801801

@@ -835,7 +835,7 @@ public String toString() {
835835
+ ", securityFeatures="
836836
+ securityFeatures
837837
+ ", reservedStateRoleMappingNames=["
838-
+ Arrays.toString(reservedStateRoleMappings.stream().map(ExpressionRoleMapping::getName).toArray(String[]::new))
838+
+ Arrays.toString(reservedStateRoleMappingNames.toArray(String[]::new))
839839
+ "]"
840840
+ '}';
841841
}

x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/support/SecurityMigrations.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@
3434
import java.util.Map;
3535
import java.util.Set;
3636
import java.util.TreeMap;
37-
import java.util.stream.Collectors;
3837

38+
import static org.elasticsearch.TransportVersions.ADD_MANAGE_ROLES_PRIVILEGE;
3939
import static org.elasticsearch.xpack.core.ClientHelper.SECURITY_ORIGIN;
4040
import static org.elasticsearch.xpack.core.ClientHelper.executeAsyncWithOrigin;
4141
import static org.elasticsearch.xpack.security.support.SecuritySystemIndices.SecurityMainIndexMappingVersion.ADD_REMOTE_CLUSTER_AND_DESCRIPTION_FIELDS;
@@ -136,10 +136,7 @@ public int minMappingVersion() {
136136

137137
@Override
138138
public void migrate(SecurityIndexManager securityIndexManager, Client client, ActionListener<Void> listener) {
139-
Set<String> clusterStateRoleMappingNames = securityIndexManager.getReservedStateRoleMappings()
140-
.stream()
141-
.map(ExpressionRoleMapping::getName)
142-
.collect(Collectors.toSet());
139+
Set<String> clusterStateRoleMappingNames = securityIndexManager.getReservedStateRoleMappingNames();
143140

144141
// No role mappings in cluster state -> no cleanup needed
145142
if (clusterStateRoleMappingNames.isEmpty()) {
@@ -199,7 +196,7 @@ public Set<NodeFeature> nodeFeaturesRequired() {
199196

200197
@Override
201198
public int minMappingVersion() {
202-
return ADD_REMOTE_CLUSTER_AND_DESCRIPTION_FIELDS.id();
199+
return ADD_MANAGE_ROLES_PRIVILEGE.id();
203200
}
204201
})
205202
);

0 commit comments

Comments
 (0)