Skip to content

Commit 5842459

Browse files
committed
recalculate signature in the single action as well
1 parent 6020132 commit 5842459

File tree

1 file changed

+11
-34
lines changed

1 file changed

+11
-34
lines changed

backend/src/entities/table-actions/use-cases/activate-table-action.use.case.ts

Lines changed: 11 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -54,25 +54,23 @@ export class ActivateTableActionUseCase
5454
const tablePrimaryKeys = await dataAccessObject.getTablePrimaryColumns(tableName, null);
5555
const primaryKeysObj = this.getPrimaryKeysFromBody(request_body, tablePrimaryKeys);
5656
const dateString = new Date().toISOString();
57-
const autoadminSignatureHeader = this.generateAutoadminSignature(
57+
const requestBody = JSON.stringify({
58+
$$_raUserId: userId,
59+
primaryKeys: primaryKeysObj,
60+
$$_date: dateString,
61+
$$_actionId: actionId,
62+
$$_tableName: tableName,
63+
});
64+
const autoadminSignatureHeader = Encryptor.hashDataHMACexternalKey(
5865
foundConnection.signing_key,
59-
primaryKeysObj,
60-
actionId,
61-
dateString,
62-
tableName,
66+
requestBody,
6367
);
6468
try {
6569
const result = await axios.post(
6670
foundTableAction.url,
71+
requestBody,
6772
{
68-
$$_raUserId: userId,
69-
primaryKeys: primaryKeysObj,
70-
$$_date: dateString,
71-
$$_actionId: actionId,
72-
$$_tableName: tableName,
73-
},
74-
{
75-
headers: { 'Rocketadmin-Signature': autoadminSignatureHeader },
73+
headers: { 'Rocketadmin-Signature': autoadminSignatureHeader, "Content-Type": "application/json" },
7674
maxRedirects: 0,
7775
validateStatus: function (status) {
7876
return status >= 200 && status <= 302;
@@ -132,25 +130,4 @@ export class ActivateTableActionUseCase
132130
}
133131
return pKeysObj;
134132
}
135-
136-
private generateAutoadminSignature(
137-
signingKey: string,
138-
primaryKeys: Record<string, unknown>,
139-
actionId: string,
140-
dateString: string,
141-
tableName: string,
142-
): string {
143-
const stringifyedPKeys = this.objToString(primaryKeys);
144-
const strTohash = dateString + '$$' + stringifyedPKeys + '$$' + actionId + '$$' + tableName;
145-
const hash = Encryptor.hashDataHMACexternalKey(signingKey, strTohash);
146-
return hash;
147-
}
148-
149-
private objToString(obj: Record<string, unknown>): string {
150-
return Object.entries(obj)
151-
.reduce((str, [p, val]) => {
152-
return `${str}${p}::${val}\n`;
153-
}, '')
154-
.slice(0, -1);
155-
}
156133
}

0 commit comments

Comments
 (0)