Skip to content

Commit c11e710

Browse files
committed
fix: Always sign with scopes on Non-Default Universes
1 parent 3ba07f5 commit c11e710

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

src/auth/jwtclient.ts

+7-2
Original file line numberDiff line numberDiff line change
@@ -163,12 +163,17 @@ export class JWT extends OAuth2Client implements IdTokenProvider {
163163
scopes = this.defaultScopes;
164164
}
165165

166+
const useScopes =
167+
this.useJWTAccessWithScope ||
168+
this.universeDomain !== DEFAULT_UNIVERSE;
169+
166170
const headers = await this.access.getRequestHeaders(
167171
url ?? undefined,
168172
this.additionalClaims,
169173
// Scopes take precedent over audience for signing,
170-
// so we only provide them if useJWTAccessWithScope is on
171-
this.useJWTAccessWithScope ? scopes : undefined
174+
// so we only provide them if `useJWTAccessWithScope` is on or
175+
// if we are in a non-default universe
176+
useScopes ? scopes : undefined
172177
);
173178

174179
return {headers: this.addSharedMetadataHeaders(headers)};

test/test.jwt.ts

+8-8
Original file line numberDiff line numberDiff line change
@@ -896,7 +896,7 @@ describe('jwt', () => {
896896
);
897897
});
898898

899-
it('signs JWT with audience if: user scope = true, default scope = false, audience = falsy, useJWTAccessWithScope = true', async () => {
899+
it('signs JWT with scopes if: user scope = true, default scope = false, audience = falsy, useJWTAccessWithScope = true', async () => {
900900
const stubGetRequestHeaders = sandbox.stub().returns({});
901901
const stubJWTAccess = sandbox.stub(jwtaccess, 'JWTAccess').returns({
902902
getRequestHeaders: stubGetRequestHeaders,
@@ -918,7 +918,7 @@ describe('jwt', () => {
918918
);
919919
});
920920

921-
it('signs JWT with audience if: user scope = false, default scope = true, audience = falsy, useJWTAccessWithScope = true', async () => {
921+
it('signs JWT with scopes if: user scope = false, default scope = true, audience = falsy, useJWTAccessWithScope = true', async () => {
922922
const stubGetRequestHeaders = sandbox.stub().returns({});
923923
const stubJWTAccess = sandbox.stub(jwtaccess, 'JWTAccess').returns({
924924
getRequestHeaders: stubGetRequestHeaders,
@@ -939,7 +939,7 @@ describe('jwt', () => {
939939
]);
940940
});
941941

942-
it('signs JWT with audience if: user scope = true, default scope = true, audience = falsy, useJWTAccessWithScope = true', async () => {
942+
it('signs JWT with scopes if: user scope = true, default scope = true, audience = falsy, useJWTAccessWithScope = true', async () => {
943943
const stubGetRequestHeaders = sandbox.stub().returns({});
944944
const stubJWTAccess = sandbox.stub(jwtaccess, 'JWTAccess').returns({
945945
getRequestHeaders: stubGetRequestHeaders,
@@ -962,7 +962,7 @@ describe('jwt', () => {
962962
);
963963
});
964964

965-
it('signs JWT with audience if: user scope = true, default scope = false, audience = truthy, useJWTAccessWithScope = true', async () => {
965+
it('signs JWT with scopes if: user scope = true, default scope = false, audience = truthy, useJWTAccessWithScope = true', async () => {
966966
const stubGetRequestHeaders = sandbox.stub().returns({});
967967
const stubJWTAccess = sandbox.stub(jwtaccess, 'JWTAccess').returns({
968968
getRequestHeaders: stubGetRequestHeaders,
@@ -984,7 +984,7 @@ describe('jwt', () => {
984984
);
985985
});
986986

987-
it('signs JWT with audience if: user scope = true, default scope = true, audience = truthy, useJWTAccessWithScope = true', async () => {
987+
it('signs JWT with scopes if: user scope = true, default scope = true, audience = truthy, useJWTAccessWithScope = true', async () => {
988988
const stubGetRequestHeaders = sandbox.stub().returns({});
989989
const stubJWTAccess = sandbox.stub(jwtaccess, 'JWTAccess').returns({
990990
getRequestHeaders: stubGetRequestHeaders,
@@ -1007,7 +1007,7 @@ describe('jwt', () => {
10071007
);
10081008
});
10091009

1010-
it('signs JWT with audience if: user scope = true, default scope = true, audience = truthy, universeDomain = not default universe', async () => {
1010+
it('signs JWT with scopes if: user scope = true, default scope = true, audience = truthy, universeDomain = not default universe', async () => {
10111011
const stubGetRequestHeaders = sandbox.stub().returns({});
10121012
const stubJWTAccess = sandbox.stub(jwtaccess, 'JWTAccess').returns({
10131013
getRequestHeaders: stubGetRequestHeaders,
@@ -1025,11 +1025,11 @@ describe('jwt', () => {
10251025
stubGetRequestHeaders,
10261026
'https//beepboop.googleapis.com',
10271027
undefined,
1028-
undefined
1028+
['scope1', 'scope2']
10291029
);
10301030
});
10311031

1032-
it('signs JWT with audience if: user scope = true, default scope = true, audience = truthy, useJWTAccessWithScope = true, universeDomain = not default universe', async () => {
1032+
it('signs JWT with scopes if: user scope = true, default scope = true, audience = truthy, useJWTAccessWithScope = true, universeDomain = not default universe', async () => {
10331033
const stubGetRequestHeaders = sandbox.stub().returns({});
10341034
const stubJWTAccess = sandbox.stub(jwtaccess, 'JWTAccess').returns({
10351035
getRequestHeaders: stubGetRequestHeaders,

0 commit comments

Comments
 (0)