Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updatable API keys - noop check #88346

Merged
merged 247 commits into from
Jul 12, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
247 commits
Select commit Hold shift + click to select a range
3bba543
Service and request draft
n1v0lg Jun 21, 2022
3a709a9
Update response
n1v0lg Jun 21, 2022
fc53cf3
Get api key docs for name
n1v0lg Jun 21, 2022
74d264c
More
n1v0lg Jun 21, 2022
0bc2ec5
More
n1v0lg Jun 21, 2022
648ae52
Check expiration
n1v0lg Jun 21, 2022
2d43dda
Integ test
n1v0lg Jun 21, 2022
4384e56
More
n1v0lg Jun 21, 2022
3d73b99
Assert role descriptors as expected
n1v0lg Jun 21, 2022
ff54fec
Clean up role descriptor checks
n1v0lg Jun 21, 2022
e484923
Test not found
n1v0lg Jun 21, 2022
a9c8caa
WIP expected metadata
n1v0lg Jun 21, 2022
d638a45
Fix metadata
n1v0lg Jun 21, 2022
0c819e4
Nit
n1v0lg Jun 21, 2022
abe677b
Fix setting metadata
n1v0lg Jun 21, 2022
3c7b2c1
Nit
n1v0lg Jun 21, 2022
29f0320
WIP use old role descriptors
n1v0lg Jun 21, 2022
eef2b38
Clean up
n1v0lg Jun 21, 2022
e5b8650
More todos
n1v0lg Jun 21, 2022
30cfc39
One more
n1v0lg Jun 21, 2022
b14271a
Other users API key not found
n1v0lg Jun 21, 2022
cd5d58f
Nit
n1v0lg Jun 21, 2022
eeca38a
Tweaks
n1v0lg Jun 21, 2022
7c3d3f0
Null bytes
n1v0lg Jun 21, 2022
f6d1783
Other
n1v0lg Jun 21, 2022
0e44586
Not found test clean up
n1v0lg Jun 22, 2022
3c83743
Tweaks
n1v0lg Jun 22, 2022
b88cdc8
Inactive tests
n1v0lg Jun 22, 2022
68eaa91
Expiration test
n1v0lg Jun 22, 2022
36bb431
Friendlier exception message
n1v0lg Jun 22, 2022
c545e20
Translate response
n1v0lg Jun 22, 2022
63c0729
Noop not possible
n1v0lg Jun 22, 2022
7aefeb1
Merge branch 'master' into update-api-keys-service-level
n1v0lg Jun 22, 2022
89d7229
Much clean up
n1v0lg Jun 22, 2022
003f969
Test validate
n1v0lg Jun 22, 2022
8937d94
Spotless
n1v0lg Jun 22, 2022
bdd4dfb
Also test empty name
n1v0lg Jun 22, 2022
4bd5cad
More clean up
n1v0lg Jun 22, 2022
d88f949
Skip todo
n1v0lg Jun 22, 2022
421e04f
Remove unused
n1v0lg Jun 22, 2022
719e4ba
Update request tests and serialization
n1v0lg Jun 22, 2022
c536534
Lint
n1v0lg Jun 22, 2022
c46ab34
Clean up
n1v0lg Jun 22, 2022
de179dd
Merge branch 'master' into update-api-keys-service-level
n1v0lg Jun 22, 2022
7931e00
Nits
n1v0lg Jun 22, 2022
3f8b218
Checkstyle
n1v0lg Jun 22, 2022
7166217
Fix
n1v0lg Jun 22, 2022
0f48e8c
Owner realms
n1v0lg Jun 22, 2022
ae573ca
Checkstyle
n1v0lg Jun 22, 2022
629e5a1
Merge branch 'master' into update-api-keys-service-level
n1v0lg Jun 23, 2022
d29c1e2
Use raw field
n1v0lg Jun 23, 2022
147adb0
Clean up new and merged doc
n1v0lg Jun 23, 2022
8cffe22
With versioning
n1v0lg Jun 23, 2022
0cac5e5
Clean up
n1v0lg Jun 23, 2022
7d9956e
Invalidate doc cache
n1v0lg Jun 23, 2022
f5d089f
More clean up
n1v0lg Jun 23, 2022
0b34c7b
Test cache
n1v0lg Jun 23, 2022
65c8d46
Assert auth cache not cleared
n1v0lg Jun 23, 2022
2e3b623
Null tweaks
n1v0lg Jun 23, 2022
2f91430
Null input stream
n1v0lg Jun 23, 2022
73d3fac
Merge branch 'master' into update-api-keys-service-level
n1v0lg Jun 24, 2022
ef49292
Updated doc test
n1v0lg Jun 24, 2022
3f099c4
Lint
n1v0lg Jun 24, 2022
9426e56
More lint
n1v0lg Jun 24, 2022
325d4d0
More clean up
n1v0lg Jun 24, 2022
044831f
Put in version stop gap
n1v0lg Jun 24, 2022
1d3d8a2
Combine tests
n1v0lg Jun 24, 2022
e377155
Include domain
n1v0lg Jun 24, 2022
e95fd34
Use param message
n1v0lg Jun 24, 2022
c536811
Bump version
n1v0lg Jun 24, 2022
b7b4c36
Check get api correct metadata
n1v0lg Jun 24, 2022
30b0267
Rename
n1v0lg Jun 24, 2022
17375b3
Still the logging
n1v0lg Jun 24, 2022
0481c01
Imports
n1v0lg Jun 24, 2022
1a29f8b
Test creator
n1v0lg Jun 24, 2022
6d7a341
Add creator assertions
n1v0lg Jun 24, 2022
99d5d06
Randomize expiration
n1v0lg Jun 24, 2022
6d7013c
Fix assertion
n1v0lg Jun 24, 2022
64990b5
WIP tests multiple role descriptors
n1v0lg Jun 24, 2022
bba8f2b
More clean up
n1v0lg Jun 24, 2022
dd69a00
Support multiple roles
n1v0lg Jun 24, 2022
3aefef8
Domain check and test clean up
n1v0lg Jun 24, 2022
49b4dd5
Better names
n1v0lg Jun 26, 2022
4a0b2b2
WIP address feedback
n1v0lg Jun 27, 2022
2bd3ea4
Scroll helper
n1v0lg Jun 27, 2022
0473c5d
Add assertion
n1v0lg Jun 27, 2022
6c33703
api key error message
n1v0lg Jun 27, 2022
d7bd723
More inline
n1v0lg Jun 27, 2022
9418b9b
Merge branch 'master' into update-api-keys-service-level
n1v0lg Jun 27, 2022
0b2457d
Single and fix test
n1v0lg Jun 27, 2022
3f283d9
Better error message
n1v0lg Jun 27, 2022
0d02eba
Nit
n1v0lg Jun 27, 2022
82fdb6b
Api keys not allowed
n1v0lg Jun 27, 2022
7a371a4
Move assertion up
n1v0lg Jun 27, 2022
4586139
Merge branch 'master' into update-api-keys-service-level
n1v0lg Jun 27, 2022
910500b
Merge branch 'master' into update-api-keys-service-level
n1v0lg Jun 27, 2022
a9dd29f
WIP actions
n1v0lg Jun 27, 2022
41d3f03
Manage own api key priv
n1v0lg Jun 27, 2022
d26f459
WIP
n1v0lg Jun 27, 2022
a9d005f
Error message
n1v0lg Jun 27, 2022
49eba62
Nit
n1v0lg Jun 27, 2022
3fdb5ff
Simplify
n1v0lg Jun 27, 2022
df2b6a3
Role descs
n1v0lg Jun 27, 2022
58019b4
More tweaks
n1v0lg Jun 27, 2022
58a7e02
Assert
n1v0lg Jun 27, 2022
3946dc1
Merge branch 'master' into update-api-keys-service-level
n1v0lg Jun 28, 2022
a896ae0
Address feedback
n1v0lg Jun 28, 2022
542b360
More logs and finals
n1v0lg Jun 28, 2022
7c36b17
Merge branch 'master' into update-api-keys-service-level
n1v0lg Jun 28, 2022
b9fcad1
More randomization in test
n1v0lg Jun 28, 2022
2b45045
Merge branch 'master' into update-api-keys-service-level
n1v0lg Jun 28, 2022
87b6fb0
Caps API key
n1v0lg Jun 28, 2022
725248d
Merge branch 'master' into update-api-keys-service-level
n1v0lg Jun 28, 2022
7481d52
Merge branch 'master' into update-api-keys-service-level
n1v0lg Jun 28, 2022
160cac3
Merge branch 'update-api-keys-service-level' into update-api-keys-res…
n1v0lg Jun 28, 2022
59b9093
WIP
n1v0lg Jun 28, 2022
ca65709
Address review
n1v0lg Jun 28, 2022
e025390
Merge branch 'master' into update-api-keys-service-level
n1v0lg Jun 28, 2022
8ed5724
Merge branch 'update-api-keys-service-level' into update-api-keys-res…
n1v0lg Jun 28, 2022
8a1a88b
Hard-won rest test
n1v0lg Jun 28, 2022
782f6ec
Nits
n1v0lg Jun 28, 2022
60a0755
Plug in client
n1v0lg Jun 28, 2022
d8fc643
Merge
n1v0lg Jun 29, 2022
7e2e786
WIP
n1v0lg Jun 29, 2022
44f16ab
Merge branch 'master' into update-api-keys-rest-transport-layers
n1v0lg Jun 29, 2022
4ff33aa
Native realm user
n1v0lg Jun 29, 2022
5489f53
Api key test
n1v0lg Jun 29, 2022
41b573f
REST test
n1v0lg Jun 29, 2022
665c426
Expect metadata rest test
n1v0lg Jun 29, 2022
84b22f6
Nit
n1v0lg Jun 29, 2022
a04792b
Manage own api key test
n1v0lg Jun 29, 2022
7f5240a
Tweak method
n1v0lg Jun 29, 2022
74b9e79
More tweaks
n1v0lg Jun 29, 2022
6a89230
Simplify
n1v0lg Jun 29, 2022
ab9b0d8
Only post
n1v0lg Jun 29, 2022
673de56
Clean up
n1v0lg Jun 29, 2022
9ada903
Use stream utils
n1v0lg Jun 29, 2022
dc1db79
Undo
n1v0lg Jun 29, 2022
e8d7bb8
Undo more
n1v0lg Jun 29, 2022
a354673
Nit
n1v0lg Jun 29, 2022
96e4864
Import
n1v0lg Jun 29, 2022
85ee9de
Add to non-operator constants
n1v0lg Jun 29, 2022
d538118
Clean up
n1v0lg Jun 29, 2022
77021e4
Few more tweaks
n1v0lg Jun 29, 2022
222d475
Nit
n1v0lg Jun 29, 2022
7654f75
Address early feedback
n1v0lg Jun 30, 2022
1ead5ea
Merge branch 'master' into update-api-keys-rest-transport-layers
n1v0lg Jun 30, 2022
5aab296
Fix tests
n1v0lg Jun 30, 2022
0f17546
Better error message
n1v0lg Jun 30, 2022
b3aaf2e
WIP rest tests
n1v0lg Jun 30, 2022
9e7ce5e
Also test bearer token auth
n1v0lg Jun 30, 2022
085cc4f
Grant target can update api key test
n1v0lg Jun 30, 2022
dde0b72
Refactor
n1v0lg Jun 30, 2022
f90b93e
Randomize auth method
n1v0lg Jun 30, 2022
5e7a5bd
Use header constant
n1v0lg Jun 30, 2022
4be5dee
Randomize cluster privs
n1v0lg Jun 30, 2022
7b137d2
Plug in more client
n1v0lg Jun 30, 2022
5070e48
Import
n1v0lg Jun 30, 2022
bad21a0
Random realm id
n1v0lg Jun 30, 2022
cb67b3e
Get random node
n1v0lg Jun 30, 2022
046a22d
Nit
n1v0lg Jun 30, 2022
a2f5f38
Add back comment
n1v0lg Jun 30, 2022
4f66060
Auto sync user roles test
n1v0lg Jun 30, 2022
46bc5f2
Merge branch 'master' into update-api-keys-rest-transport-layers
n1v0lg Jul 4, 2022
57938c5
Clean up test
n1v0lg Jul 4, 2022
6a2deb1
Test grantor cannot update
n1v0lg Jul 4, 2022
a838648
Include ID in assertion
n1v0lg Jul 4, 2022
2d6d9d0
Update docs/changelog/88186.yaml
n1v0lg Jul 4, 2022
3e3e5e0
Changelog
n1v0lg Jul 4, 2022
05571e2
Merge branch 'master' into update-api-keys-rest-transport-layers
n1v0lg Jul 4, 2022
57b7e67
Validator tests
n1v0lg Jul 4, 2022
0fc25b9
Priv test
n1v0lg Jul 4, 2022
75e2e0e
Clean up tests
n1v0lg Jul 4, 2022
ea8d79e
Randomize more but not too much
n1v0lg Jul 4, 2022
bedd5b0
Imports
n1v0lg Jul 4, 2022
96e681a
Randomize cluster privs in auto update test
n1v0lg Jul 4, 2022
8ce5651
Update docs/changelog/88186.yaml
n1v0lg Jul 4, 2022
cfe84c8
Clear cache param
n1v0lg Jul 4, 2022
eb6cdad
Merge branch 'update-api-keys-rest-transport-layers' of github.com:n1…
n1v0lg Jul 4, 2022
17e449f
Changelog
n1v0lg Jul 4, 2022
23f8572
Use ids to avoid cascading failure
n1v0lg Jul 4, 2022
3673f0f
Exclude invalid role descriptors
n1v0lg Jul 4, 2022
e5e16d0
Merge branch 'master' into update-api-keys-rest-transport-layers
n1v0lg Jul 5, 2022
16a6233
Merge branch 'master' into update-api-keys-rest-transport-layers
n1v0lg Jul 5, 2022
398a0fa
Merge branch 'master' into update-api-keys-rest-transport-layers
n1v0lg Jul 6, 2022
66a38d8
Merge branch 'master' into update-api-keys-rest-transport-layers
n1v0lg Jul 6, 2022
f7c5e97
Update api keys - noop check
n1v0lg Jul 6, 2022
3502987
Clean up
n1v0lg Jul 6, 2022
64de03d
Move to private methods
n1v0lg Jul 6, 2022
a293d5e
Nits
n1v0lg Jul 6, 2022
d0dc1cb
Rest tests for noop
n1v0lg Jul 6, 2022
448e349
Update test to detect noop
n1v0lg Jul 6, 2022
96875f4
Better comment
n1v0lg Jul 6, 2022
935e6de
Noop tests
n1v0lg Jul 7, 2022
0201963
More noop tests
n1v0lg Jul 7, 2022
8d66784
Merge
n1v0lg Jul 7, 2022
4d60526
Debug on noop
n1v0lg Jul 7, 2022
86b12e6
Debug log on noop
n1v0lg Jul 7, 2022
f04e96b
Randomize in noop test
n1v0lg Jul 7, 2022
94fcd2a
Tweaks
n1v0lg Jul 7, 2022
6597328
Fix noop test
n1v0lg Jul 7, 2022
c06effd
Clean up
n1v0lg Jul 7, 2022
6c7bdde
Update docs/changelog/88346.yaml
n1v0lg Jul 7, 2022
89df83e
Typo
n1v0lg Jul 7, 2022
716d78e
Merge branch 'update-api-keys-noop-check' of github.com:n1v0lg/elasti…
n1v0lg Jul 7, 2022
e933011
Fix cache test
n1v0lg Jul 7, 2022
519b98d
Check cache does not get cleared on noop
n1v0lg Jul 7, 2022
b1b234e
Merge branch 'master' into update-api-keys-noop-check
n1v0lg Jul 7, 2022
0225d95
WIP comments
n1v0lg Jul 8, 2022
6a58c11
Merge branch 'master' into update-api-keys-noop-check
n1v0lg Jul 8, 2022
dba4602
WIP noop check
n1v0lg Jul 8, 2022
284d587
More tweaks
n1v0lg Jul 8, 2022
df41425
Fix cluster priv check
n1v0lg Jul 8, 2022
15502c0
Update role name
n1v0lg Jul 8, 2022
2d41750
Checkstyle
n1v0lg Jul 8, 2022
17bd1d7
Fix tests
n1v0lg Jul 8, 2022
e124512
Tweaks
n1v0lg Jul 8, 2022
e27f112
More noop tweaks
n1v0lg Jul 8, 2022
7acf717
Expect creator
n1v0lg Jul 9, 2022
ab8d512
Check userdata updated
n1v0lg Jul 9, 2022
c041438
Domain check
n1v0lg Jul 9, 2022
396882a
Noop check inside build doc
n1v0lg Jul 9, 2022
dad7d19
Check rd order changes is noop
n1v0lg Jul 9, 2022
6b31261
Move noop check
n1v0lg Jul 10, 2022
2a9d66d
Noop test wip
n1v0lg Jul 10, 2022
f8b3ad9
Extend build doc test
n1v0lg Jul 10, 2022
7bd7d35
Fix noop check for domain
n1v0lg Jul 10, 2022
10c69ad
Cleaner realm domain comp
n1v0lg Jul 10, 2022
dd487c8
Remove unused imports
n1v0lg Jul 10, 2022
c0b3f5b
Move noop
n1v0lg Jul 10, 2022
8741527
Assert on realm domain
n1v0lg Jul 10, 2022
094048b
TODOs
n1v0lg Jul 10, 2022
4a02111
Merge branch 'master' into update-api-keys-noop-check
n1v0lg Jul 11, 2022
4944be6
Clean up tests
n1v0lg Jul 11, 2022
370de6e
Unused import
n1v0lg Jul 11, 2022
d1c400c
Tweak area
n1v0lg Jul 11, 2022
534f8e5
Typos
n1v0lg Jul 11, 2022
679edc7
Address comments
n1v0lg Jul 12, 2022
4134ea0
Fix test
n1v0lg Jul 12, 2022
958f7b9
Consistently use roleDescriptors
n1v0lg Jul 12, 2022
4f7eb54
Add comment
n1v0lg Jul 12, 2022
a4d9705
Add comment
n1v0lg Jul 12, 2022
c30c26a
Merge branch 'master' into update-api-keys-noop-check
n1v0lg Jul 12, 2022
cc7f5a9
Tweak comment
n1v0lg Jul 12, 2022
cd730c0
Nit
n1v0lg Jul 12, 2022
173acd7
Merge branch 'master' into update-api-keys-noop-check
n1v0lg Jul 12, 2022
7d320b1
maybe
n1v0lg Jul 12, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions docs/changelog/88346.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
pr: 88346
summary: Updatable API keys - noop check
area: Security
type: enhancement
issues: []
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import org.elasticsearch.xcontent.ParseField;
import org.elasticsearch.xcontent.ToXContentObject;
import org.elasticsearch.xcontent.XContentBuilder;
import org.elasticsearch.xcontent.XContentParser;

import java.io.IOException;
import java.util.List;
Expand Down Expand Up @@ -48,6 +49,10 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws
return builder;
}

public static RealmDomain fromXContent(final XContentParser parser) {
return REALM_DOMAIN_PARSER.apply(parser, null);
}

@Override
public String toString() {
return "RealmDomain{" + "name='" + name + '\'' + ", realms=" + realms + '}';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,36 @@ public static User randomUser() {
);
}

public static User userWithRandomMetadataAndDetails(final String username, final String... roles) {
return new User(
username,
roles,
ESTestCase.randomFrom(ESTestCase.randomAlphaOfLengthBetween(1, 10), null),
// Not a very realistic email address, but we don't validate this nor rely on correct format, so keeping it simple
ESTestCase.randomFrom(ESTestCase.randomAlphaOfLengthBetween(1, 10), null),
randomUserMetadata(),
true
);
}

public static Map<String, Object> randomUserMetadata() {
return ESTestCase.randomFrom(
Map.of(
"employee_id",
ESTestCase.randomAlphaOfLength(5),
"number",
1,
"numbers",
List.of(1, 3, 5),
"extra",
Map.of("favorite pizza", "hawaii", "age", 42)
),
Map.of(ESTestCase.randomAlphaOfLengthBetween(3, 8), ESTestCase.randomAlphaOfLengthBetween(3, 8)),
Map.of(),
null
);
}

public static RealmDomain randomDomain(boolean includeInternal) {
final Supplier<String> randomRealmTypeSupplier = randomRealmTypeSupplier(includeInternal);
final Set<RealmConfig.RealmIdentifier> domainRealms = new HashSet<>(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ public void testGrantApiKeyWithOnlyManageOwnApiKeyPrivilegeFails() throws IOExce

public void testUpdateApiKey() throws IOException {
final var apiKeyName = "my-api-key-name";
final Map<String, String> apiKeyMetadata = Map.of("not", "returned");
final Map<String, Object> apiKeyMetadata = Map.of("not", "returned");
final Map<String, Object> createApiKeyRequestBody = Map.of("name", apiKeyName, "metadata", apiKeyMetadata);

final Request createApiKeyRequest = new Request("POST", "_security/api_key");
Expand All @@ -215,7 +215,7 @@ public void testUpdateApiKey() throws IOException {
assertThat(apiKeyId, not(emptyString()));
assertThat(apiKeyEncoded, not(emptyString()));

doTestUpdateApiKey(apiKeyName, apiKeyId, apiKeyEncoded);
doTestUpdateApiKey(apiKeyName, apiKeyId, apiKeyEncoded, apiKeyMetadata);
}

public void testGrantTargetCanUpdateApiKey() throws IOException {
Expand All @@ -240,7 +240,7 @@ public void testGrantTargetCanUpdateApiKey() throws IOException {
assertThat(apiKeyId, not(emptyString()));
assertThat(apiKeyEncoded, not(emptyString()));

doTestUpdateApiKey(apiKeyName, apiKeyId, apiKeyEncoded);
doTestUpdateApiKey(apiKeyName, apiKeyId, apiKeyEncoded, null);
}

public void testGrantorCannotUpdateApiKeyOfGrantTarget() throws IOException {
Expand Down Expand Up @@ -283,18 +283,26 @@ private void doTestAuthenticationWithApiKey(final String apiKeyName, final Strin
assertThat(authenticate, hasEntry("api_key", Map.of("id", apiKeyId, "name", apiKeyName)));
}

private void doTestUpdateApiKey(String apiKeyName, String apiKeyId, String apiKeyEncoded) throws IOException {
private void doTestUpdateApiKey(
final String apiKeyName,
final String apiKeyId,
final String apiKeyEncoded,
final Map<String, Object> oldMetadata
) throws IOException {
final var updateApiKeyRequest = new Request("PUT", "_security/api_key/" + apiKeyId);
final Map<String, Object> expectedApiKeyMetadata = Map.of("not", "returned (changed)", "foo", "bar");
final Map<String, Object> updateApiKeyRequestBody = Map.of("metadata", expectedApiKeyMetadata);
final boolean updated = randomBoolean();
final Map<String, Object> expectedApiKeyMetadata = updated ? Map.of("not", "returned (changed)", "foo", "bar") : oldMetadata;
final Map<String, Object> updateApiKeyRequestBody = expectedApiKeyMetadata == null
? Map.of()
: Map.of("metadata", expectedApiKeyMetadata);
updateApiKeyRequest.setJsonEntity(XContentTestUtils.convertToXContent(updateApiKeyRequestBody, XContentType.JSON).utf8ToString());

final Response updateApiKeyResponse = doUpdateUsingRandomAuthMethod(updateApiKeyRequest);

assertOK(updateApiKeyResponse);
final Map<String, Object> updateApiKeyResponseMap = responseAsMap(updateApiKeyResponse);
assertTrue((Boolean) updateApiKeyResponseMap.get("updated"));
expectMetadata(apiKeyId, expectedApiKeyMetadata);
assertEquals(updated, updateApiKeyResponseMap.get("updated"));
expectMetadata(apiKeyId, expectedApiKeyMetadata == null ? Map.of() : expectedApiKeyMetadata);
// validate authentication still works after update
doTestAuthenticationWithApiKey(apiKeyName, apiKeyId, apiKeyEncoded);
}
Expand Down
Loading