Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 4 additions & 0 deletions ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@

## Upcoming Release

General:

- Fixed shared key authentication signature generation when x-ms-date header is present.

## 2023.11 Version 3.28.0

General:
Expand Down
4 changes: 2 additions & 2 deletions src/blob/authentication/BlobSharedKeyAuthenticator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ export default class BlobSharedKeyAuthenticator implements IAuthenticator {
this.getHeaderValueToSign(req, HeaderConstants.CONTENT_LENGTH),
this.getHeaderValueToSign(req, HeaderConstants.CONTENT_MD5),
this.getHeaderValueToSign(req, HeaderConstants.CONTENT_TYPE),
this.getHeaderValueToSign(req, HeaderConstants.DATE),
this.getHeaderValueToSign(req, HeaderConstants.X_MS_DATE) ? "" : this.getHeaderValueToSign(req, HeaderConstants.DATE),
this.getHeaderValueToSign(req, HeaderConstants.IF_MODIFIED_SINCE),
this.getHeaderValueToSign(req, HeaderConstants.IF_MATCH),
this.getHeaderValueToSign(req, HeaderConstants.IF_NONE_MATCH),
Expand Down Expand Up @@ -148,7 +148,7 @@ export default class BlobSharedKeyAuthenticator implements IAuthenticator {
this.getHeaderValueToSign(req, HeaderConstants.CONTENT_LENGTH),
this.getHeaderValueToSign(req, HeaderConstants.CONTENT_MD5),
this.getHeaderValueToSign(req, HeaderConstants.CONTENT_TYPE),
this.getHeaderValueToSign(req, HeaderConstants.DATE),
this.getHeaderValueToSign(req, HeaderConstants.X_MS_DATE) ? "" : this.getHeaderValueToSign(req, HeaderConstants.DATE),
this.getHeaderValueToSign(req, HeaderConstants.IF_MODIFIED_SINCE),
this.getHeaderValueToSign(req, HeaderConstants.IF_MATCH),
this.getHeaderValueToSign(req, HeaderConstants.IF_NONE_MATCH),
Expand Down
4 changes: 2 additions & 2 deletions src/queue/authentication/QueueSharedKeyAuthenticator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -328,7 +328,7 @@ export default class QueueSharedKeyAuthenticator implements IAuthenticator {
this.getHeaderValueToSign(req, HeaderConstants.CONTENT_LENGTH),
this.getHeaderValueToSign(req, HeaderConstants.CONTENT_MD5),
this.getHeaderValueToSign(req, HeaderConstants.CONTENT_TYPE),
this.getHeaderValueToSign(req, HeaderConstants.DATE),
this.getHeaderValueToSign(req, HeaderConstants.X_MS_DATE) ? "" : this.getHeaderValueToSign(req, HeaderConstants.DATE),
this.getHeaderValueToSign(req, HeaderConstants.IF_MODIFIED_SINCE),
this.getHeaderValueToSign(req, HeaderConstants.IF_MATCH),
this.getHeaderValueToSign(req, HeaderConstants.IF_NONE_MATCH),
Expand All @@ -344,7 +344,7 @@ export default class QueueSharedKeyAuthenticator implements IAuthenticator {
req.getMethod().toUpperCase(),
this.getHeaderValueToSign(req, HeaderConstants.CONTENT_MD5),
this.getHeaderValueToSign(req, HeaderConstants.CONTENT_TYPE),
this.getHeaderValueToSign(req, HeaderConstants.DATE)
this.getHeaderValueToSign(req, HeaderConstants.X_MS_DATE) ? "" : this.getHeaderValueToSign(req, HeaderConstants.DATE)
].join("\n") +
"\n" +
this.getCanonicalizedHeadersString(req)
Expand Down
8 changes: 4 additions & 4 deletions src/table/authentication/TableSharedKeyAuthenticator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ export default class TableSharedKeyAuthenticator implements IAuthenticator {
req.getMethod().toUpperCase(),
this.getHeaderValueToSign(req, HeaderConstants.CONTENT_MD5),
this.getHeaderValueToSign(req, HeaderConstants.CONTENT_TYPE),
this.getHeaderValueToSign(req, HeaderConstants.DATE) ||
this.getHeaderValueToSign(req, HeaderConstants.X_MS_DATE)
this.getHeaderValueToSign(req, HeaderConstants.X_MS_DATE) ||
this.getHeaderValueToSign(req, HeaderConstants.DATE)
].join("\n") +
"\n" +
this.getCanonicalizedResourceString(
Expand Down Expand Up @@ -111,8 +111,8 @@ export default class TableSharedKeyAuthenticator implements IAuthenticator {
req.getMethod().toUpperCase(),
this.getHeaderValueToSign(req, HeaderConstants.CONTENT_MD5),
this.getHeaderValueToSign(req, HeaderConstants.CONTENT_TYPE),
this.getHeaderValueToSign(req, HeaderConstants.DATE) ||
this.getHeaderValueToSign(req, HeaderConstants.X_MS_DATE)
this.getHeaderValueToSign(req, HeaderConstants.X_MS_DATE) ||
this.getHeaderValueToSign(req, HeaderConstants.DATE)
].join("\n") +
"\n" +
this.getCanonicalizedResourceString(
Expand Down
8 changes: 4 additions & 4 deletions src/table/authentication/TableSharedKeyLiteAuthenticator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ export default class TableSharedKeyLiteAuthenticator implements IAuthenticator {

const stringToSign: string =
[
this.getHeaderValueToSign(req, HeaderConstants.DATE) ||
this.getHeaderValueToSign(req, HeaderConstants.X_MS_DATE)
this.getHeaderValueToSign(req, HeaderConstants.X_MS_DATE) ||
this.getHeaderValueToSign(req, HeaderConstants.DATE)
].join("\n") +
"\n" +
this.getCanonicalizedResourceString(
Expand Down Expand Up @@ -108,8 +108,8 @@ export default class TableSharedKeyLiteAuthenticator implements IAuthenticator {
// JS/.net Track2 SDK will generate stringToSign from IP style Uri with "-secondary" in authenticationPath, so will also compare signature with this kind stringToSignconst stringToSign: string =
const stringToSign_secondary: string =
[
this.getHeaderValueToSign(req, HeaderConstants.DATE) ||
this.getHeaderValueToSign(req, HeaderConstants.X_MS_DATE)
this.getHeaderValueToSign(req, HeaderConstants.X_MS_DATE) ||
this.getHeaderValueToSign(req, HeaderConstants.DATE)
].join("\n") +
"\n" +
this.getCanonicalizedResourceString(
Expand Down
4 changes: 2 additions & 2 deletions tests/table/utils/table.entity.tests.utils.for.rest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ export function createStringToSignForSharedKeyLite(
): string {
const stringToSign: string =
[
getHeaderValueToSign(HeaderConstants.DATE, headers) ||
getHeaderValueToSign(HeaderConstants.X_MS_DATE, headers)
getHeaderValueToSign(HeaderConstants.X_MS_DATE, headers) ||
getHeaderValueToSign(HeaderConstants.DATE, headers)
].join("\n") +
"\n" +
getCanonicalizedResourceString(
Expand Down