Skip to content

Commit cd06830

Browse files
authored
Remove v7.x.x transport versions constants (#136223)
1 parent 894d561 commit cd06830

File tree

14 files changed

+106
-122
lines changed

14 files changed

+106
-122
lines changed

server/src/main/java/org/elasticsearch/TransportVersions.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -53,16 +53,6 @@ static TransportVersion def(int id) {
5353
}
5454

5555
// TODO: ES-10337 we can remove all transport versions earlier than 8.18
56-
public static final TransportVersion V_7_0_0 = def(7_00_00_99);
57-
public static final TransportVersion V_7_1_0 = def(7_01_00_99);
58-
public static final TransportVersion V_7_2_0 = def(7_02_00_99);
59-
public static final TransportVersion V_7_3_0 = def(7_03_00_99);
60-
public static final TransportVersion V_7_3_2 = def(7_03_02_99);
61-
public static final TransportVersion V_7_4_0 = def(7_04_00_99);
62-
public static final TransportVersion V_7_8_0 = def(7_08_00_99);
63-
public static final TransportVersion V_7_8_1 = def(7_08_01_99);
64-
public static final TransportVersion V_7_9_0 = def(7_09_00_99);
65-
public static final TransportVersion V_7_10_0 = def(7_10_00_99);
6656
public static final TransportVersion V_8_0_0 = def(8_00_00_99);
6757
public static final TransportVersion V_8_1_0 = def(8_01_00_99);
6858
public static final TransportVersion V_8_2_0 = def(8_02_00_99);

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

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,8 @@ public SecurityFeatureSetUsage(StreamInput in) throws IOException {
5555
realmsUsage = in.readGenericMap();
5656
rolesStoreUsage = in.readGenericMap();
5757
sslUsage = in.readGenericMap();
58-
if (in.getTransportVersion().onOrAfter(TransportVersions.V_7_2_0)) {
59-
tokenServiceUsage = in.readGenericMap();
60-
apiKeyServiceUsage = in.readGenericMap();
61-
}
58+
tokenServiceUsage = in.readGenericMap();
59+
apiKeyServiceUsage = in.readGenericMap();
6260
auditUsage = in.readGenericMap();
6361
ipFilterUsage = in.readGenericMap();
6462
anonymousUsage = in.readGenericMap();
@@ -121,10 +119,8 @@ public void writeTo(StreamOutput out) throws IOException {
121119
out.writeGenericMap(realmsUsage);
122120
out.writeGenericMap(rolesStoreUsage);
123121
out.writeGenericMap(sslUsage);
124-
if (out.getTransportVersion().onOrAfter(TransportVersions.V_7_2_0)) {
125-
out.writeGenericMap(tokenServiceUsage);
126-
out.writeGenericMap(apiKeyServiceUsage);
127-
}
122+
out.writeGenericMap(tokenServiceUsage);
123+
out.writeGenericMap(apiKeyServiceUsage);
128124
out.writeGenericMap(auditUsage);
129125
out.writeGenericMap(ipFilterUsage);
130126
out.writeGenericMap(anonymousUsage);

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import org.apache.logging.log4j.LogManager;
1010
import org.apache.logging.log4j.Logger;
1111
import org.elasticsearch.TransportVersion;
12-
import org.elasticsearch.TransportVersions;
1312
import org.elasticsearch.common.bytes.BytesReference;
1413
import org.elasticsearch.common.io.stream.BytesStreamOutput;
1514
import org.elasticsearch.common.io.stream.StreamInput;
@@ -115,9 +114,10 @@ public final class Authentication implements ToXContentObject {
115114
private static final Logger logger = LogManager.getLogger(Authentication.class);
116115
private static final TransportVersion VERSION_AUTHENTICATION_TYPE = TransportVersion.fromId(6_07_00_99);
117116

118-
public static final TransportVersion VERSION_API_KEY_ROLES_AS_BYTES = TransportVersions.V_7_9_0;
119-
public static final TransportVersion VERSION_REALM_DOMAINS = TransportVersions.V_8_2_0;
120-
public static final TransportVersion VERSION_METADATA_BEYOND_GENERIC_MAP = TransportVersions.V_8_8_0;
117+
public static final TransportVersion VERSION_SYNTHETIC_ROLE_NAMES = TransportVersion.fromId(7_08_00_99);
118+
public static final TransportVersion VERSION_API_KEY_ROLES_AS_BYTES = TransportVersion.fromId(7_09_00_99);
119+
public static final TransportVersion VERSION_REALM_DOMAINS = TransportVersion.fromId(8_02_00_99);
120+
public static final TransportVersion VERSION_METADATA_BEYOND_GENERIC_MAP = TransportVersion.fromId(8_08_00_99);
121121

122122
private static final TransportVersion SECURITY_CLOUD_API_KEY_REALM_AND_TYPE = TransportVersion.fromName(
123123
"security_cloud_api_key_realm_and_type"
@@ -211,7 +211,7 @@ public Authentication(StreamInput in) throws IOException {
211211

212212
private User copyUserWithRolesRemovedForLegacyApiKeys(TransportVersion version, User user) {
213213
// API keys prior to 7.8 had synthetic role names. Strip these out to maintain the invariant that API keys don't have role names
214-
if (type == AuthenticationType.API_KEY && version.onOrBefore(TransportVersions.V_7_8_0) && user.roles().length > 0) {
214+
if (type == AuthenticationType.API_KEY && version.onOrBefore(VERSION_SYNTHETIC_ROLE_NAMES) && user.roles().length > 0) {
215215
logger.debug(
216216
"Stripping [{}] roles from API key user [{}] for legacy version [{}]",
217217
user.roles().length,

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

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
package org.elasticsearch.xpack.core.security.authc.support;
99

1010
import org.elasticsearch.ElasticsearchException;
11-
import org.elasticsearch.TransportVersions;
1211
import org.elasticsearch.common.io.stream.StreamInput;
1312
import org.elasticsearch.common.io.stream.StreamOutput;
1413
import org.elasticsearch.common.io.stream.Writeable;
@@ -59,9 +58,6 @@ public TokensInvalidationResult(StreamInput in) throws IOException {
5958
this.invalidatedTokens = in.readStringCollectionAsList();
6059
this.previouslyInvalidatedTokens = in.readStringCollectionAsList();
6160
this.errors = in.readCollectionAsList(StreamInput::readException);
62-
if (in.getTransportVersion().before(TransportVersions.V_7_2_0)) {
63-
in.readVInt();
64-
}
6561
this.restStatus = RestStatus.readFrom(in);
6662
}
6763

@@ -109,9 +105,6 @@ public void writeTo(StreamOutput out) throws IOException {
109105
out.writeStringCollection(invalidatedTokens);
110106
out.writeStringCollection(previouslyInvalidatedTokens);
111107
out.writeCollection(errors, StreamOutput::writeException);
112-
if (out.getTransportVersion().before(TransportVersions.V_7_2_0)) {
113-
out.writeVInt(5);
114-
}
115108
RestStatus.writeTo(out, restStatus);
116109
}
117110
}

x-pack/plugin/core/src/test/java/org/elasticsearch/protocol/xpack/XPackInfoRequestTests.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,9 @@
88
package org.elasticsearch.protocol.xpack;
99

1010
import org.elasticsearch.TransportVersion;
11-
import org.elasticsearch.TransportVersions;
1211
import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
1312
import org.elasticsearch.protocol.xpack.XPackInfoRequest.Category;
1413
import org.elasticsearch.test.ESTestCase;
15-
import org.elasticsearch.test.TransportVersionUtils;
1614

1715
import java.util.EnumSet;
1816
import java.util.List;
@@ -25,16 +23,6 @@ public void testSerializeToCurrentVersion() throws Exception {
2523
assertSerialization(TransportVersion.current());
2624
}
2725

28-
public void testSerializeUsing7xVersion() throws Exception {
29-
assertSerialization(
30-
TransportVersionUtils.randomVersionBetween(
31-
random(),
32-
TransportVersions.V_7_8_1,
33-
TransportVersionUtils.getPreviousVersion(TransportVersions.V_8_0_0)
34-
)
35-
);
36-
}
37-
3826
private void assertSerialization(TransportVersion version) throws java.io.IOException {
3927
final XPackInfoRequest request = new XPackInfoRequest();
4028
final List<Category> categories = randomSubsetOf(List.of(Category.values()));

x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/security/action/apikey/InvalidateApiKeyRequestTests.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
package org.elasticsearch.xpack.core.security.action.apikey;
99

1010
import org.elasticsearch.TransportVersion;
11-
import org.elasticsearch.TransportVersions;
1211
import org.elasticsearch.action.ActionRequestValidationException;
1312
import org.elasticsearch.action.LegacyActionRequest;
1413
import org.elasticsearch.common.Strings;
@@ -17,13 +16,13 @@
1716
import org.elasticsearch.common.io.stream.StreamOutput;
1817
import org.elasticsearch.core.Booleans;
1918
import org.elasticsearch.test.ESTestCase;
19+
import org.elasticsearch.test.TransportVersionUtils;
2020

2121
import java.io.ByteArrayInputStream;
2222
import java.io.ByteArrayOutputStream;
2323
import java.io.IOException;
2424
import java.util.function.Supplier;
2525

26-
import static org.elasticsearch.test.TransportVersionUtils.randomVersionBetween;
2726
import static org.hamcrest.Matchers.containsInAnyOrder;
2827
import static org.hamcrest.Matchers.containsString;
2928
import static org.hamcrest.Matchers.equalTo;
@@ -175,15 +174,14 @@ public void testSerialization() throws IOException {
175174
final boolean ownedByAuthenticatedUser = true;
176175
InvalidateApiKeyRequest invalidateApiKeyRequest = InvalidateApiKeyRequest.usingApiKeyId(apiKeyId, ownedByAuthenticatedUser);
177176
{
177+
TransportVersion transportVersion = TransportVersionUtils.randomCompatibleVersion(random());
178178
ByteArrayOutputStream outBuffer = new ByteArrayOutputStream();
179179
OutputStreamStreamOutput out = new OutputStreamStreamOutput(outBuffer);
180-
out.setTransportVersion(randomVersionBetween(random(), TransportVersions.V_7_10_0, TransportVersion.current()));
180+
out.setTransportVersion(transportVersion);
181181
invalidateApiKeyRequest.writeTo(out);
182182

183183
InputStreamStreamInput inputStreamStreamInput = new InputStreamStreamInput(new ByteArrayInputStream(outBuffer.toByteArray()));
184-
inputStreamStreamInput.setTransportVersion(
185-
randomVersionBetween(random(), TransportVersions.V_7_10_0, TransportVersion.current())
186-
);
184+
inputStreamStreamInput.setTransportVersion(transportVersion);
187185
InvalidateApiKeyRequest requestFromInputStream = new InvalidateApiKeyRequest(inputStreamStreamInput);
188186

189187
assertThat(requestFromInputStream, equalTo(invalidateApiKeyRequest));

x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/security/authc/AuthenticationSerializationTests.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636

3737
public class AuthenticationSerializationTests extends ESTestCase {
3838

39+
private static final TransportVersion VERSION_7_0_0 = TransportVersion.fromId(7_00_00_99);
3940
private static final TransportVersion SECURITY_CLOUD_API_KEY_REALM_AND_TYPE = TransportVersion.fromName(
4041
"security_cloud_api_key_realm_and_type"
4142
);
@@ -234,21 +235,16 @@ public void testReservedUserSerialization() throws Exception {
234235
}
235236

236237
public void testRolesRemovedFromUserForLegacyApiKeys() throws IOException {
237-
TransportVersion transportVersion = TransportVersionUtils.randomVersionBetween(
238-
random(),
239-
TransportVersions.V_7_0_0,
240-
TransportVersions.V_7_8_0
241-
);
242238
Subject authenticatingSubject = new Subject(
243239
new User("foo", "role"),
244240
new Authentication.RealmRef(AuthenticationField.API_KEY_REALM_NAME, AuthenticationField.API_KEY_REALM_TYPE, "node"),
245-
transportVersion,
241+
VERSION_7_0_0,
246242
Map.of(AuthenticationField.API_KEY_ID_KEY, "abc")
247243
);
248244
Subject effectiveSubject = new Subject(
249245
new User("bar", "role"),
250246
new Authentication.RealmRef("native", "native", "node"),
251-
transportVersion,
247+
VERSION_7_0_0,
252248
Map.of()
253249
);
254250

x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/security/authc/AuthenticationTests.java

Lines changed: 49 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import static java.util.Map.entry;
4747
import static org.elasticsearch.common.bytes.BytesReferenceTestUtils.equalBytes;
4848
import static org.elasticsearch.xpack.core.security.authc.Authentication.VERSION_API_KEY_ROLES_AS_BYTES;
49+
import static org.elasticsearch.xpack.core.security.authc.Authentication.VERSION_REALM_DOMAINS;
4950
import static org.elasticsearch.xpack.core.security.authc.AuthenticationTestHelper.randomCloudApiKeyAuthentication;
5051
import static org.elasticsearch.xpack.core.security.authc.AuthenticationTestHelper.randomCrossClusterAccessSubjectInfo;
5152
import static org.elasticsearch.xpack.core.security.authc.CrossClusterAccessSubjectInfoTests.randomRoleDescriptorsIntersection;
@@ -64,6 +65,15 @@
6465

6566
public class AuthenticationTests extends ESTestCase {
6667

68+
private static final TransportVersion VERSION_7_0_0 = TransportVersion.fromId(7_00_00_99);
69+
public static final TransportVersion[] AUTHENTICATION_TRANSPORT_VERSIONS = {
70+
VERSION_7_0_0,
71+
Authentication.VERSION_SYNTHETIC_ROLE_NAMES,
72+
VERSION_API_KEY_ROLES_AS_BYTES,
73+
Authentication.VERSION_REALM_DOMAINS,
74+
Authentication.VERSION_METADATA_BEYOND_GENERIC_MAP,
75+
TransportVersion.current() };
76+
6777
public void testIsFailedRunAs() {
6878
final Authentication failedAuthentication = randomRealmAuthentication(randomBoolean()).runAs(randomUser(), null);
6979
assertTrue(failedAuthentication.isRunAs());
@@ -982,11 +992,11 @@ public void testMaybeRewriteForOlderVersionErasesDomainForVersionsBeforeDomains(
982992
final TransportVersion olderVersion = TransportVersionUtils.randomVersionBetween(
983993
random(),
984994
TransportVersions.V_8_0_0,
985-
TransportVersionUtils.getPreviousVersion(Authentication.VERSION_REALM_DOMAINS)
995+
TransportVersionUtils.getPreviousVersion(VERSION_REALM_DOMAINS)
986996
);
987997
final Authentication authentication = AuthenticationTestHelper.builder()
988998
.realm() // randomize to test both when realm is null on the original auth and non-null, instead of setting `underDomain`
989-
.transportVersion(TransportVersionUtils.randomVersionBetween(random(), Authentication.VERSION_REALM_DOMAINS, null))
999+
.transportVersion(TransportVersionUtils.randomVersionBetween(random(), VERSION_REALM_DOMAINS, null))
9901000
.build();
9911001
assertThat(authentication.getEffectiveSubject().getTransportVersion().after(olderVersion), is(true));
9921002

@@ -1000,7 +1010,7 @@ public void testMaybeRewriteForOlderVersionErasesDomainForVersionsBeforeDomains(
10001010
public void testMaybeRewriteForOlderVersionDoesNotEraseDomainForVersionsAfterDomains() {
10011011
final TransportVersion olderVersion = TransportVersionUtils.randomVersionBetween(
10021012
random(),
1003-
Authentication.VERSION_REALM_DOMAINS,
1013+
VERSION_REALM_DOMAINS,
10041014
// Don't include CURRENT, so we always have at least one newer version available below
10051015
TransportVersionUtils.getPreviousVersion()
10061016
);
@@ -1053,19 +1063,15 @@ public void testMaybeRewriteRealmRef() {
10531063

10541064
assertThat(
10551065
Authentication.maybeRewriteRealmRef(
1056-
TransportVersionUtils.randomVersionBetween(
1057-
random(),
1058-
null,
1059-
TransportVersionUtils.getPreviousVersion(Authentication.VERSION_REALM_DOMAINS)
1060-
),
1066+
TransportVersionUtils.randomVersionBetween(random(), null, TransportVersionUtils.getPreviousVersion(VERSION_REALM_DOMAINS)),
10611067
realmRefWithDomain
10621068
).getDomain(),
10631069
nullValue()
10641070
);
10651071

10661072
assertThat(
10671073
Authentication.maybeRewriteRealmRef(
1068-
TransportVersionUtils.randomVersionBetween(random(), Authentication.VERSION_REALM_DOMAINS, null),
1074+
TransportVersionUtils.randomVersionBetween(random(), VERSION_REALM_DOMAINS, null),
10691075
realmRefWithDomain
10701076
),
10711077
equalTo(realmRefWithDomain)
@@ -1095,10 +1101,9 @@ public void testMaybeRewriteMetadataForApiKeyRoleDescriptorsWithRemoteIndices()
10951101
.build();
10961102

10971103
// pick a version before that of the authentication instance to force a rewrite
1098-
final TransportVersion olderVersion = TransportVersionUtils.randomVersionBetween(
1099-
random(),
1104+
final TransportVersion olderVersion = randomTransportVersionBetween(
11001105
VERSION_API_KEY_ROLES_AS_BYTES,
1101-
TransportVersionUtils.getPreviousVersion(original.getEffectiveSubject().getTransportVersion())
1106+
original.getEffectiveSubject().getTransportVersion()
11021107
);
11031108

11041109
final Map<String, Object> rewrittenMetadata = original.maybeRewriteForOlderVersion(olderVersion)
@@ -1140,10 +1145,9 @@ public void testMaybeRewriteMetadataForApiKeyRoleDescriptorsWithRemoteCluster()
11401145
.build();
11411146

11421147
// pick a version before that of the authentication instance to force a rewrite
1143-
final TransportVersion olderVersion = TransportVersionUtils.randomVersionBetween(
1144-
random(),
1148+
final TransportVersion olderVersion = randomTransportVersionBetween(
11451149
VERSION_API_KEY_ROLES_AS_BYTES,
1146-
TransportVersionUtils.getPreviousVersion(original.getEffectiveSubject().getTransportVersion())
1150+
original.getEffectiveSubject().getTransportVersion()
11471151
);
11481152

11491153
final Map<String, Object> rewrittenMetadata = original.maybeRewriteForOlderVersion(olderVersion)
@@ -1323,8 +1327,8 @@ public static Authentication randomAuthentication(User user, RealmRef realmRef,
13231327
realmRef = randomRealmRef(false);
13241328
}
13251329
// If the realm is expected to have a domain, we need a version that's at least compatible with domains
1326-
final TransportVersion minVersion = realmRef.getDomain() != null ? Authentication.VERSION_REALM_DOMAINS : TransportVersions.V_7_0_0;
1327-
final TransportVersion version = TransportVersionUtils.randomVersionBetween(random(), minVersion, TransportVersion.current());
1330+
final TransportVersion minVersion = realmRef.getDomain() != null ? VERSION_REALM_DOMAINS : VERSION_7_0_0;
1331+
final TransportVersion version = randomTransportVersion(minVersion);
13281332
final Map<String, Object> metadata;
13291333
if (randomBoolean()) {
13301334
metadata = Map.of(randomAlphaOfLengthBetween(3, 8), randomAlphaOfLengthBetween(3, 8));
@@ -1337,13 +1341,37 @@ public static Authentication randomAuthentication(User user, RealmRef realmRef,
13371341
}
13381342

13391343
public static Authentication randomApiKeyAuthentication(User user, String apiKeyId) {
1340-
return randomApiKeyAuthentication(
1341-
user,
1342-
apiKeyId,
1343-
TransportVersionUtils.randomVersionBetween(random(), TransportVersions.V_7_0_0, TransportVersion.current())
1344+
return randomApiKeyAuthentication(user, apiKeyId, randomTransportVersion());
1345+
}
1346+
1347+
/**
1348+
* @param minVersion minimum version, inclusive
1349+
* @param maxVersion maximum version, exclusive
1350+
*/
1351+
public static TransportVersion randomTransportVersionBetween(TransportVersion minVersion, TransportVersion maxVersion) {
1352+
return randomFrom(
1353+
Arrays.stream(AUTHENTICATION_TRANSPORT_VERSIONS)
1354+
.filter(v -> v.onOrAfter(minVersion) && v.before(maxVersion))
1355+
.toArray(TransportVersion[]::new)
1356+
);
1357+
}
1358+
1359+
public static TransportVersion randomTransportVersionBefore(TransportVersion maxVersion) {
1360+
return randomFrom(
1361+
Arrays.stream(AUTHENTICATION_TRANSPORT_VERSIONS).filter(v -> v.before(maxVersion)).toArray(TransportVersion[]::new)
13441362
);
13451363
}
13461364

1365+
public static TransportVersion randomTransportVersion(TransportVersion minVersion) {
1366+
return randomFrom(
1367+
Arrays.stream(AUTHENTICATION_TRANSPORT_VERSIONS).filter(v -> v.onOrAfter(minVersion)).toArray(TransportVersion[]::new)
1368+
);
1369+
}
1370+
1371+
public static TransportVersion randomTransportVersion() {
1372+
return randomFrom(AUTHENTICATION_TRANSPORT_VERSIONS);
1373+
}
1374+
13471375
public static Authentication randomApiKeyAuthentication(User user, String apiKeyId, TransportVersion version) {
13481376
return randomApiKeyAuthentication(
13491377
user,

0 commit comments

Comments
 (0)