Skip to content

Commit 521c48a

Browse files
fix retrieval of apikey
1 parent c8f92b8 commit 521c48a

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

server/src/main/java/com/cloud/user/AccountManagerImpl.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3255,7 +3255,7 @@ private Boolean isAccessingKeypairSuperset(ApiKeyPair accessedKeyPair, BaseCmd c
32553255
@Override
32563256
public String getAccessingApiKey(BaseCmd cmd) {
32573257
try {
3258-
if (cmd instanceof BaseAsyncCmd && ((BaseAsyncCmd) cmd).getJob().toString().contains("signature")) {
3258+
if (cmd instanceof BaseAsyncCmd && ((BaseAsyncCmd) cmd).getJob().toString().contains("\"signature\"")) {
32593259
return parseApiKeyFromAsyncJob((BaseAsyncCmd) cmd);
32603260
}
32613261
boolean accessedByApiKey = cmd.getFullUrlParams().containsKey(ApiConstants.SIGNATURE);
@@ -3271,9 +3271,8 @@ public String getAccessingApiKey(BaseCmd cmd) {
32713271

32723272
private String parseApiKeyFromAsyncJob(BaseAsyncCmd cmd) {
32733273
String jobString = cmd.getJob().toString();
3274-
int indexOfApiKey = jobString.indexOf("\"", jobString.indexOf("apiKey")) + 1;
3275-
int indexValueOfApiKey = jobString.indexOf("\"", indexOfApiKey) + 1;
3276-
return jobString.substring(indexValueOfApiKey, jobString.indexOf("\"", indexValueOfApiKey)).replace("\\", "");
3274+
int indexOfApiKey = jobString.indexOf("apiKey") + 9;
3275+
return jobString.substring(indexOfApiKey, jobString.indexOf("\"", indexOfApiKey));
32773276
}
32783277

32793278
private Boolean isApiKeySupersetOfPermission(List<RolePermissionEntity> baseKeyPairPermissions, List<RolePermissionEntity> comparedPermissions) {

0 commit comments

Comments
 (0)