@xemahq/platform-common 0.34.0 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/auth/org-scope-mint.d.ts +6 -0
- package/dist/lib/auth/org-scope-mint.d.ts.map +1 -1
- package/dist/lib/auth/org-scope-mint.js +15 -0
- package/dist/lib/auth/org-scope-mint.js.map +1 -1
- package/dist/nestjs/auth/declared-subject-class.d.ts +10 -0
- package/dist/nestjs/auth/declared-subject-class.d.ts.map +1 -0
- package/dist/nestjs/auth/declared-subject-class.js +42 -0
- package/dist/nestjs/auth/declared-subject-class.js.map +1 -0
- package/dist/nestjs/auth/index.d.ts +3 -2
- package/dist/nestjs/auth/index.d.ts.map +1 -1
- package/dist/nestjs/auth/index.js +10 -5
- package/dist/nestjs/auth/index.js.map +1 -1
- package/dist/nestjs/auth/internal-caller.guard.d.ts.map +1 -1
- package/dist/nestjs/auth/internal-caller.guard.js +22 -0
- package/dist/nestjs/auth/internal-caller.guard.js.map +1 -1
- package/dist/nestjs/auth/proven-org-authority-required.d.ts +3 -0
- package/dist/nestjs/auth/proven-org-authority-required.d.ts.map +1 -0
- package/dist/nestjs/auth/proven-org-authority-required.js +8 -0
- package/dist/nestjs/auth/proven-org-authority-required.js.map +1 -0
- package/dist/nestjs/auth/service-actor.guard.d.ts.map +1 -1
- package/dist/nestjs/auth/service-actor.guard.js +11 -6
- package/dist/nestjs/auth/service-actor.guard.js.map +1 -1
- package/dist/nestjs/auth/service-token.guard.d.ts +1 -0
- package/dist/nestjs/auth/service-token.guard.d.ts.map +1 -1
- package/dist/nestjs/auth/service-token.guard.js +73 -21
- package/dist/nestjs/auth/service-token.guard.js.map +1 -1
- package/dist/nestjs/global-exception.filter.d.ts.map +1 -1
- package/dist/nestjs/global-exception.filter.js +8 -0
- package/dist/nestjs/global-exception.filter.js.map +1 -1
- package/dist/nestjs/index.d.ts +2 -1
- package/dist/nestjs/index.d.ts.map +1 -1
- package/dist/nestjs/index.js +12 -4
- package/dist/nestjs/index.js.map +1 -1
- package/dist/nestjs/jwt-verification.guard.d.ts +2 -4
- package/dist/nestjs/jwt-verification.guard.d.ts.map +1 -1
- package/dist/nestjs/jwt-verification.guard.js +6 -29
- package/dist/nestjs/jwt-verification.guard.js.map +1 -1
- package/dist/nestjs/problem-details.dto.d.ts.map +1 -1
- package/dist/nestjs/problem-details.dto.js +10 -2
- package/dist/nestjs/problem-details.dto.js.map +1 -1
- package/dist/nestjs/problem-extensions.d.ts +22 -0
- package/dist/nestjs/problem-extensions.d.ts.map +1 -0
- package/dist/nestjs/problem-extensions.js +137 -0
- package/dist/nestjs/problem-extensions.js.map +1 -0
- package/dist/nestjs/refusal.d.ts +8 -0
- package/dist/nestjs/refusal.d.ts.map +1 -1
- package/dist/nestjs/refusal.js +99 -8
- package/dist/nestjs/refusal.js.map +1 -1
- package/package.json +3 -3
- package/dist/nestjs/auth/org-claim-required.d.ts +0 -3
- package/dist/nestjs/auth/org-claim-required.d.ts.map +0 -1
- package/dist/nestjs/auth/org-claim-required.js +0 -8
- package/dist/nestjs/auth/org-claim-required.js.map +0 -1
|
@@ -30,5 +30,11 @@ export interface OrgScopedTokenMinter {
|
|
|
30
30
|
}): Promise<ScopedAccessToken>;
|
|
31
31
|
}
|
|
32
32
|
export declare function mintOrgScopedToken(minter: OrgScopedTokenMinter, scope: OrgScopeWitness): Promise<ScopedAccessToken>;
|
|
33
|
+
export interface OrgScopedClaimDescriptor {
|
|
34
|
+
readonly realm: string;
|
|
35
|
+
readonly claimName: string;
|
|
36
|
+
readonly claimValue: string;
|
|
37
|
+
}
|
|
38
|
+
export declare function orgScopedClaim(realm: string, scope: OrgScopeWitness): OrgScopedClaimDescriptor;
|
|
33
39
|
export {};
|
|
34
40
|
//# sourceMappingURL=org-scope-mint.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"org-scope-mint.d.ts","sourceRoot":"","sources":["../../../src/lib/auth/org-scope-mint.ts"],"names":[],"mappings":"AAoFA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGjE,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAC;AAUzB,oBAAY,kBAAkB;IAM5B,aAAa,mBAAmB;IAwBhC,SAAS,eAAe;IAWxB,aAAa,mBAAmB;CACjC;AAED,OAAO,CAAC,MAAM,uBAAuB,EAAE,OAAO,MAAM,CAAC;AAUrD,MAAM,WAAW,eAAe;IAE9B,QAAQ,CAAC,CAAC,uBAAuB,CAAC,EAAE,IAAI,CAAC;IAEzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IAMxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAGD,qBAAa,qBAAsB,SAAQ,KAAK;IAE5C,QAAQ,CAAC,aAAa,EAAE,MAAM;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM;gBADd,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM;CAY1B;AAsBD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,mBAAmB,GAC3B,eAAe,CASjB;AAQD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACpD,eAAe,CAMjB;AAQD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,eAAe,CAEjB;AAGD,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,CASlE;AAWD,MAAM,WAAW,oBAAoB;IACnC,oBAAoB,CAAC,OAAO,EAAE;QAC5B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACtC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAChC;AAUD,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,oBAAoB,EAC5B,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,iBAAiB,CAAC,CAI5B"}
|
|
1
|
+
{"version":3,"file":"org-scope-mint.d.ts","sourceRoot":"","sources":["../../../src/lib/auth/org-scope-mint.ts"],"names":[],"mappings":"AAoFA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGjE,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAC;AAUzB,oBAAY,kBAAkB;IAM5B,aAAa,mBAAmB;IAwBhC,SAAS,eAAe;IAWxB,aAAa,mBAAmB;CACjC;AAED,OAAO,CAAC,MAAM,uBAAuB,EAAE,OAAO,MAAM,CAAC;AAUrD,MAAM,WAAW,eAAe;IAE9B,QAAQ,CAAC,CAAC,uBAAuB,CAAC,EAAE,IAAI,CAAC;IAEzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IAMxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAGD,qBAAa,qBAAsB,SAAQ,KAAK;IAE5C,QAAQ,CAAC,aAAa,EAAE,MAAM;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM;gBADd,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM;CAY1B;AAsBD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,mBAAmB,GAC3B,eAAe,CASjB;AAQD,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACpD,eAAe,CAMjB;AAQD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,eAAe,CAEjB;AAGD,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,CASlE;AAWD,MAAM,WAAW,oBAAoB;IACnC,oBAAoB,CAAC,OAAO,EAAE;QAC5B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACtC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAChC;AAUD,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,oBAAoB,EAC5B,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,iBAAiB,CAAC,CAI5B;AAiBD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAmCD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,eAAe,GACrB,wBAAwB,CAkB1B"}
|
|
@@ -6,6 +6,7 @@ exports.orgScopeFromOwningRow = orgScopeFromOwningRow;
|
|
|
6
6
|
exports.orgScopeFromPlatformSweep = orgScopeFromPlatformSweep;
|
|
7
7
|
exports.describeOrgScopeWitness = describeOrgScopeWitness;
|
|
8
8
|
exports.mintOrgScopedToken = mintOrgScopedToken;
|
|
9
|
+
exports.orgScopedClaim = orgScopedClaim;
|
|
9
10
|
const org_claim_1 = require("./org-claim");
|
|
10
11
|
const org_authority_1 = require("./org-authority");
|
|
11
12
|
var OrgScopeProvenance;
|
|
@@ -64,4 +65,18 @@ async function mintOrgScopedToken(minter, scope) {
|
|
|
64
65
|
scopedClaims: { [org_claim_1.OrgClaimKey.Canonical]: scope.orgId },
|
|
65
66
|
});
|
|
66
67
|
}
|
|
68
|
+
function orgScopedClaim(realm, scope) {
|
|
69
|
+
const trimmedRealm = realm.trim();
|
|
70
|
+
if (trimmedRealm.length === 0 || trimmedRealm !== realm) {
|
|
71
|
+
throw new Error('[platform-common] orgScopedClaim: realm must be non-empty and must ' +
|
|
72
|
+
'not carry leading or trailing whitespace — identity-api matches the ' +
|
|
73
|
+
'grant EXACTLY, so a padded realm fails as a missing grant rather ' +
|
|
74
|
+
'than as a malformed one.');
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
realm: trimmedRealm,
|
|
78
|
+
claimName: org_claim_1.OrgClaimKey.Canonical,
|
|
79
|
+
claimValue: scope.orgId,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
67
82
|
//# sourceMappingURL=org-scope-mint.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"org-scope-mint.js","sourceRoot":"","sources":["../../../src/lib/auth/org-scope-mint.ts"],"names":[],"mappings":";;;AA+MA,8DAWC;AAQD,sDASC;AAQD,8DAKC;AAGD,0DASC;AAyBD,gDAOC;
|
|
1
|
+
{"version":3,"file":"org-scope-mint.js","sourceRoot":"","sources":["../../../src/lib/auth/org-scope-mint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { UnauthorizedException } from '@nestjs/common';
|
|
2
|
+
import type { VerifiedTokenSource } from './realm-token-verifier';
|
|
3
|
+
export declare class UnclassifiableForeignBearerError extends UnauthorizedException {
|
|
4
|
+
constructor(issuer: string);
|
|
5
|
+
}
|
|
6
|
+
export declare class UnknownDeclaredSubjectClassError extends UnauthorizedException {
|
|
7
|
+
constructor(issuer: string, declared: string);
|
|
8
|
+
}
|
|
9
|
+
export declare function claimsWithDeclaredSubjectClass<T extends Record<string, unknown>>(payload: T, source: VerifiedTokenSource): T;
|
|
10
|
+
//# sourceMappingURL=declared-subject-class.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"declared-subject-class.d.ts","sourceRoot":"","sources":["../../../src/nestjs/auth/declared-subject-class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAGvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AA+BlE,qBAAa,gCAAiC,SAAQ,qBAAqB;gBAC7D,MAAM,EAAE,MAAM;CAW3B;AAWD,qBAAa,gCAAiC,SAAQ,qBAAqB;gBAC7D,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAM7C;AAsBD,wBAAgB,8BAA8B,CAC5C,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,mBAAmB,GAAG,CAAC,CAc5C"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UnknownDeclaredSubjectClassError = exports.UnclassifiableForeignBearerError = void 0;
|
|
4
|
+
exports.claimsWithDeclaredSubjectClass = claimsWithDeclaredSubjectClass;
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const subject_1 = require("@xemahq/contracts/subject");
|
|
7
|
+
class UnclassifiableForeignBearerError extends common_1.UnauthorizedException {
|
|
8
|
+
constructor(issuer) {
|
|
9
|
+
super(`The access token was proved by trusted issuer '${issuer}', which ` +
|
|
10
|
+
`declares no "subjectClass", and the token carries no "token_class" ` +
|
|
11
|
+
`of its own. Nothing states what kind of subject this is, so it is ` +
|
|
12
|
+
`refused rather than assumed to be a user — the assumption that a ` +
|
|
13
|
+
`signal-less token is a browser login holds for this deployment's own ` +
|
|
14
|
+
`realm and for nothing else. Declare "subjectClass" on the issuer's ` +
|
|
15
|
+
`registry entry, or have the issuer stamp "token_class".`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.UnclassifiableForeignBearerError = UnclassifiableForeignBearerError;
|
|
19
|
+
class UnknownDeclaredSubjectClassError extends common_1.UnauthorizedException {
|
|
20
|
+
constructor(issuer, declared) {
|
|
21
|
+
super(`Trusted issuer '${issuer}' declares subjectClass ` +
|
|
22
|
+
`'${declared}', which is not a known TokenClass.`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.UnknownDeclaredSubjectClassError = UnknownDeclaredSubjectClassError;
|
|
26
|
+
function claimsWithDeclaredSubjectClass(payload, source) {
|
|
27
|
+
if (source.kind !== 'trusted-issuer')
|
|
28
|
+
return payload;
|
|
29
|
+
if (typeof payload.token_class === 'string' && payload.token_class) {
|
|
30
|
+
return payload;
|
|
31
|
+
}
|
|
32
|
+
const declared = source.entry.subjectClass;
|
|
33
|
+
if (!declared) {
|
|
34
|
+
throw new UnclassifiableForeignBearerError(source.entry.issuer);
|
|
35
|
+
}
|
|
36
|
+
const parsed = subject_1.TokenClassSchema.safeParse(declared);
|
|
37
|
+
if (!parsed.success) {
|
|
38
|
+
throw new UnknownDeclaredSubjectClassError(source.entry.issuer, declared);
|
|
39
|
+
}
|
|
40
|
+
return { ...payload, token_class: parsed.data };
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=declared-subject-class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"declared-subject-class.js","sourceRoot":"","sources":["../../../src/nestjs/auth/declared-subject-class.ts"],"names":[],"mappings":";;;AAsFA,wEAgBC;AAtGD,2CAAuD;AACvD,uDAA6D;AAiC7D,MAAa,gCAAiC,SAAQ,8BAAqB;IACzE,YAAY,MAAc;QACxB,KAAK,CACH,kDAAkD,MAAM,WAAW;YACjE,qEAAqE;YACrE,oEAAoE;YACpE,mEAAmE;YACnE,uEAAuE;YACvE,qEAAqE;YACrE,yDAAyD,CAC5D,CAAC;IACJ,CAAC;CACF;AAZD,4EAYC;AAWD,MAAa,gCAAiC,SAAQ,8BAAqB;IACzE,YAAY,MAAc,EAAE,QAAgB;QAC1C,KAAK,CACH,mBAAmB,MAAM,0BAA0B;YACjD,IAAI,QAAQ,qCAAqC,CACpD,CAAC;IACJ,CAAC;CACF;AAPD,4EAOC;AAsBD,SAAgB,8BAA8B,CAE5C,OAAU,EAAE,MAA2B;IACvC,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB;QAAE,OAAO,OAAO,CAAC;IACrD,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACnE,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;IAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,gCAAgC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,MAAM,GAAG,0BAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,gCAAgC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AAClD,CAAC"}
|
|
@@ -12,12 +12,13 @@ export { holdsOrgAuthority, resolveOrgAuthorityInstrument, type OrgAuthorityInst
|
|
|
12
12
|
export { PlatformAdminGuard } from './platform-admin.guard';
|
|
13
13
|
export { configureAuthMiddleware, type ConfigureAuthMiddlewareOptions, } from './configure-auth-middleware';
|
|
14
14
|
export { OrgClaimKey, OrgHeaderName, ORG_CLAIM_KEYS, resolveOrgClaim, } from '../../lib/auth/org-claim';
|
|
15
|
-
export {
|
|
15
|
+
export { RequireProvenOrgAuthority, REQUIRE_PROVEN_ORG_AUTHORITY } from './proven-org-authority-required';
|
|
16
16
|
export { OrgAuthoritySource, type OrgAuthorityVerdict, type OrgAuthorityCaller, type OrgAuthorityCallerFacts, resolveOrgAuthority, isOrgAuthorityProven, orgAuthorityRequiresProof, } from '../../lib/auth/org-authority';
|
|
17
|
-
export { OrgScopeProvenance, type OrgScopeWitness, type OrgScopedTokenMinter, UnprovenOrgScopeError, orgScopeFromProvenRequest, orgScopeFromOwningRow, orgScopeFromPlatformSweep, describeOrgScopeWitness, mintOrgScopedToken, } from '../../lib/auth/org-scope-mint';
|
|
17
|
+
export { OrgScopeProvenance, type OrgScopeWitness, type OrgScopedTokenMinter, UnprovenOrgScopeError, orgScopeFromProvenRequest, orgScopeFromOwningRow, orgScopeFromPlatformSweep, describeOrgScopeWitness, mintOrgScopedToken, type OrgScopedClaimDescriptor, orgScopedClaim, } from '../../lib/auth/org-scope-mint';
|
|
18
18
|
export { ORG_AUTHORITY_OBSERVATION_LIMIT, UNKNOWN_CLIENT_ID, type OrgAuthorityObservation, type OrgAuthorityCensus, recordUnprovenOrgAuthority, recordServiceRelayedOrgAuthority, orgAuthorityCensus, orgAuthorityRelayCensus, resetOrgAuthorityCensus, } from '../../lib/auth/org-authority-observations';
|
|
19
19
|
export { resolveActorChainFromClaims, UnclassifiableActorHopError, UnknownActorHopSubjectKindError, ContradictoryActorHopKindError, MalformedActorHopError, } from './delegation-chain';
|
|
20
20
|
export { SUBJECT_KIND_CLAIM, readDeclaredSubjectKind, UnknownTokenClassError, } from './actor-classification';
|
|
21
21
|
export { RealmTokenVerifier, type MultiRealmKeySource, type VerifiedTokenSource, } from './realm-token-verifier';
|
|
22
|
+
export { UnclassifiableForeignBearerError, UnknownDeclaredSubjectClassError, claimsWithDeclaredSubjectClass, } from './declared-subject-class';
|
|
22
23
|
export { DEFAULT_TRUSTED_ISSUER_ALGORITHMS, TRUSTED_ISSUERS_ENV_VAR, TrustedIssuerConfigError, TrustedIssuerRegistry, parseTrustedIssuersFromEnv, type TrustedIssuerEntry, } from '@xemahq/oidc-guard';
|
|
23
24
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/nestjs/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EACL,mBAAmB,EACnB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EACL,OAAO,EACP,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EACL,iBAAiB,EACjB,6BAA6B,EAC7B,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EACL,uBAAuB,EACvB,KAAK,8BAA8B,GACpC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,WAAW,EACX,aAAa,EACb,cAAc,EACd,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/nestjs/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EACL,mBAAmB,EACnB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EACL,OAAO,EACP,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EACL,iBAAiB,EACjB,6BAA6B,EAC7B,KAAK,sBAAsB,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EACL,uBAAuB,EACvB,KAAK,8BAA8B,GACpC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,WAAW,EACX,aAAa,EACb,cAAc,EACd,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC1G,OAAO,EACL,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,kBAAkB,EAClB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,EACvB,kBAAkB,EAClB,KAAK,wBAAwB,EAC7B,cAAc,GACf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,+BAA+B,EAC/B,iBAAiB,EACjB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,0BAA0B,EAC1B,gCAAgC,EAChC,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,+BAA+B,EAC/B,8BAA8B,EAC9B,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,gCAAgC,EAChC,gCAAgC,EAChC,8BAA8B,GAC/B,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EACL,iCAAiC,EACjC,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,0BAA0B,EAC1B,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.parseTrustedIssuersFromEnv = exports.TrustedIssuerRegistry = exports.TrustedIssuerConfigError = exports.TRUSTED_ISSUERS_ENV_VAR = exports.DEFAULT_TRUSTED_ISSUER_ALGORITHMS = exports.RealmTokenVerifier = exports.UnknownTokenClassError = exports.readDeclaredSubjectKind = exports.SUBJECT_KIND_CLAIM = exports.MalformedActorHopError = exports.ContradictoryActorHopKindError = exports.UnknownActorHopSubjectKindError = exports.UnclassifiableActorHopError = void 0;
|
|
3
|
+
exports.resetOrgAuthorityCensus = exports.orgAuthorityRelayCensus = exports.orgAuthorityCensus = exports.recordServiceRelayedOrgAuthority = exports.recordUnprovenOrgAuthority = exports.UNKNOWN_CLIENT_ID = exports.ORG_AUTHORITY_OBSERVATION_LIMIT = exports.orgScopedClaim = exports.mintOrgScopedToken = exports.describeOrgScopeWitness = exports.orgScopeFromPlatformSweep = exports.orgScopeFromOwningRow = exports.orgScopeFromProvenRequest = exports.UnprovenOrgScopeError = exports.OrgScopeProvenance = exports.orgAuthorityRequiresProof = exports.isOrgAuthorityProven = exports.resolveOrgAuthority = exports.OrgAuthoritySource = exports.REQUIRE_PROVEN_ORG_AUTHORITY = exports.RequireProvenOrgAuthority = exports.resolveOrgClaim = exports.ORG_CLAIM_KEYS = exports.OrgHeaderName = exports.OrgClaimKey = exports.configureAuthMiddleware = exports.PlatformAdminGuard = exports.resolveOrgAuthorityInstrument = exports.holdsOrgAuthority = exports.hasPlatformRole = exports.PlatformRole = exports.orgRoleSatisfies = exports.resolveOrgRoleForOrg = exports.resolveOrgRoles = exports.ORG_ROLES_CLAIM_KEYS = exports.OrgRolesClaimKey = exports.OrgRole = exports.ServiceOrOrgRoleGuard = exports.REQUIRE_ORG_ROLE = exports.RequireOrgRole = exports.OrgRoleGuard = exports.REQUIRE_TOKEN_CLASS = exports.RequireTokenClass = exports.TokenClassGuard = exports.isDirectServiceActor = exports.ServiceActorGuard = exports.InternalCallerGuard = exports.ServiceTokenGuard = exports.AUTH_MODULE_OPTIONS = exports.AuthModule = void 0;
|
|
4
|
+
exports.parseTrustedIssuersFromEnv = exports.TrustedIssuerRegistry = exports.TrustedIssuerConfigError = exports.TRUSTED_ISSUERS_ENV_VAR = exports.DEFAULT_TRUSTED_ISSUER_ALGORITHMS = exports.claimsWithDeclaredSubjectClass = exports.UnknownDeclaredSubjectClassError = exports.UnclassifiableForeignBearerError = exports.RealmTokenVerifier = exports.UnknownTokenClassError = exports.readDeclaredSubjectKind = exports.SUBJECT_KIND_CLAIM = exports.MalformedActorHopError = exports.ContradictoryActorHopKindError = exports.UnknownActorHopSubjectKindError = exports.UnclassifiableActorHopError = exports.resolveActorChainFromClaims = void 0;
|
|
5
5
|
var auth_module_1 = require("./auth.module");
|
|
6
6
|
Object.defineProperty(exports, "AuthModule", { enumerable: true, get: function () { return auth_module_1.AuthModule; } });
|
|
7
7
|
var auth_module_options_1 = require("./auth-module-options");
|
|
@@ -45,9 +45,9 @@ Object.defineProperty(exports, "OrgClaimKey", { enumerable: true, get: function
|
|
|
45
45
|
Object.defineProperty(exports, "OrgHeaderName", { enumerable: true, get: function () { return org_claim_1.OrgHeaderName; } });
|
|
46
46
|
Object.defineProperty(exports, "ORG_CLAIM_KEYS", { enumerable: true, get: function () { return org_claim_1.ORG_CLAIM_KEYS; } });
|
|
47
47
|
Object.defineProperty(exports, "resolveOrgClaim", { enumerable: true, get: function () { return org_claim_1.resolveOrgClaim; } });
|
|
48
|
-
var
|
|
49
|
-
Object.defineProperty(exports, "
|
|
50
|
-
Object.defineProperty(exports, "
|
|
48
|
+
var proven_org_authority_required_1 = require("./proven-org-authority-required");
|
|
49
|
+
Object.defineProperty(exports, "RequireProvenOrgAuthority", { enumerable: true, get: function () { return proven_org_authority_required_1.RequireProvenOrgAuthority; } });
|
|
50
|
+
Object.defineProperty(exports, "REQUIRE_PROVEN_ORG_AUTHORITY", { enumerable: true, get: function () { return proven_org_authority_required_1.REQUIRE_PROVEN_ORG_AUTHORITY; } });
|
|
51
51
|
var org_authority_1 = require("../../lib/auth/org-authority");
|
|
52
52
|
Object.defineProperty(exports, "OrgAuthoritySource", { enumerable: true, get: function () { return org_authority_1.OrgAuthoritySource; } });
|
|
53
53
|
Object.defineProperty(exports, "resolveOrgAuthority", { enumerable: true, get: function () { return org_authority_1.resolveOrgAuthority; } });
|
|
@@ -61,6 +61,7 @@ Object.defineProperty(exports, "orgScopeFromOwningRow", { enumerable: true, get:
|
|
|
61
61
|
Object.defineProperty(exports, "orgScopeFromPlatformSweep", { enumerable: true, get: function () { return org_scope_mint_1.orgScopeFromPlatformSweep; } });
|
|
62
62
|
Object.defineProperty(exports, "describeOrgScopeWitness", { enumerable: true, get: function () { return org_scope_mint_1.describeOrgScopeWitness; } });
|
|
63
63
|
Object.defineProperty(exports, "mintOrgScopedToken", { enumerable: true, get: function () { return org_scope_mint_1.mintOrgScopedToken; } });
|
|
64
|
+
Object.defineProperty(exports, "orgScopedClaim", { enumerable: true, get: function () { return org_scope_mint_1.orgScopedClaim; } });
|
|
64
65
|
var org_authority_observations_1 = require("../../lib/auth/org-authority-observations");
|
|
65
66
|
Object.defineProperty(exports, "ORG_AUTHORITY_OBSERVATION_LIMIT", { enumerable: true, get: function () { return org_authority_observations_1.ORG_AUTHORITY_OBSERVATION_LIMIT; } });
|
|
66
67
|
Object.defineProperty(exports, "UNKNOWN_CLIENT_ID", { enumerable: true, get: function () { return org_authority_observations_1.UNKNOWN_CLIENT_ID; } });
|
|
@@ -81,6 +82,10 @@ Object.defineProperty(exports, "readDeclaredSubjectKind", { enumerable: true, ge
|
|
|
81
82
|
Object.defineProperty(exports, "UnknownTokenClassError", { enumerable: true, get: function () { return actor_classification_1.UnknownTokenClassError; } });
|
|
82
83
|
var realm_token_verifier_1 = require("./realm-token-verifier");
|
|
83
84
|
Object.defineProperty(exports, "RealmTokenVerifier", { enumerable: true, get: function () { return realm_token_verifier_1.RealmTokenVerifier; } });
|
|
85
|
+
var declared_subject_class_1 = require("./declared-subject-class");
|
|
86
|
+
Object.defineProperty(exports, "UnclassifiableForeignBearerError", { enumerable: true, get: function () { return declared_subject_class_1.UnclassifiableForeignBearerError; } });
|
|
87
|
+
Object.defineProperty(exports, "UnknownDeclaredSubjectClassError", { enumerable: true, get: function () { return declared_subject_class_1.UnknownDeclaredSubjectClassError; } });
|
|
88
|
+
Object.defineProperty(exports, "claimsWithDeclaredSubjectClass", { enumerable: true, get: function () { return declared_subject_class_1.claimsWithDeclaredSubjectClass; } });
|
|
84
89
|
var oidc_guard_1 = require("@xemahq/oidc-guard");
|
|
85
90
|
Object.defineProperty(exports, "DEFAULT_TRUSTED_ISSUER_ALGORITHMS", { enumerable: true, get: function () { return oidc_guard_1.DEFAULT_TRUSTED_ISSUER_ALGORITHMS; } });
|
|
86
91
|
Object.defineProperty(exports, "TRUSTED_ISSUERS_ENV_VAR", { enumerable: true, get: function () { return oidc_guard_1.TRUSTED_ISSUERS_ENV_VAR; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/nestjs/auth/index.ts"],"names":[],"mappings":";;;;AAAA,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,6DAI+B;AAH7B,0HAAA,mBAAmB,OAAA;AAIrB,6DAA0D;AAAjD,wHAAA,iBAAiB,OAAA;AAC1B,iEAA8D;AAArD,4HAAA,mBAAmB,OAAA;AAC5B,6DAG+B;AAF7B,wHAAA,iBAAiB,OAAA;AACjB,2HAAA,oBAAoB,OAAA;AAEtB,yDAI6B;AAH3B,oHAAA,eAAe,OAAA;AACf,sHAAA,iBAAiB,OAAA;AACjB,wHAAA,mBAAmB,OAAA;AAErB,mDAI0B;AAHxB,8GAAA,YAAY,OAAA;AACZ,gHAAA,cAAc,OAAA;AACd,kHAAA,gBAAgB,OAAA;AAElB,yEAAoE;AAA3D,kIAAA,qBAAqB,OAAA;AAC9B,oDAOiC;AAN/B,mGAAA,OAAO,OAAA;AACP,4GAAA,gBAAgB,OAAA;AAChB,gHAAA,oBAAoB,OAAA;AACpB,2GAAA,eAAe,OAAA;AACf,gHAAA,oBAAoB,OAAA;AACpB,4GAAA,gBAAgB,OAAA;AAElB,iDAAgE;AAAvD,6GAAA,YAAY,OAAA;AAAE,gHAAA,eAAe,OAAA;AACtC,6DAI+B;AAH7B,wHAAA,iBAAiB,OAAA;AACjB,oIAAA,6BAA6B,OAAA;AAG/B,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA;AAC3B,yEAGqC;AAFnC,oIAAA,uBAAuB,OAAA;AAGzB,sDAKkC;AAJhC,wGAAA,WAAW,OAAA;AACX,0GAAA,aAAa,OAAA;AACb,2GAAA,cAAc,OAAA;AACd,4GAAA,eAAe,OAAA;AAEjB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/nestjs/auth/index.ts"],"names":[],"mappings":";;;;AAAA,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,6DAI+B;AAH7B,0HAAA,mBAAmB,OAAA;AAIrB,6DAA0D;AAAjD,wHAAA,iBAAiB,OAAA;AAC1B,iEAA8D;AAArD,4HAAA,mBAAmB,OAAA;AAC5B,6DAG+B;AAF7B,wHAAA,iBAAiB,OAAA;AACjB,2HAAA,oBAAoB,OAAA;AAEtB,yDAI6B;AAH3B,oHAAA,eAAe,OAAA;AACf,sHAAA,iBAAiB,OAAA;AACjB,wHAAA,mBAAmB,OAAA;AAErB,mDAI0B;AAHxB,8GAAA,YAAY,OAAA;AACZ,gHAAA,cAAc,OAAA;AACd,kHAAA,gBAAgB,OAAA;AAElB,yEAAoE;AAA3D,kIAAA,qBAAqB,OAAA;AAC9B,oDAOiC;AAN/B,mGAAA,OAAO,OAAA;AACP,4GAAA,gBAAgB,OAAA;AAChB,gHAAA,oBAAoB,OAAA;AACpB,2GAAA,eAAe,OAAA;AACf,gHAAA,oBAAoB,OAAA;AACpB,4GAAA,gBAAgB,OAAA;AAElB,iDAAgE;AAAvD,6GAAA,YAAY,OAAA;AAAE,gHAAA,eAAe,OAAA;AACtC,6DAI+B;AAH7B,wHAAA,iBAAiB,OAAA;AACjB,oIAAA,6BAA6B,OAAA;AAG/B,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA;AAC3B,yEAGqC;AAFnC,oIAAA,uBAAuB,OAAA;AAGzB,sDAKkC;AAJhC,wGAAA,WAAW,OAAA;AACX,0GAAA,aAAa,OAAA;AACb,2GAAA,cAAc,OAAA;AACd,4GAAA,eAAe,OAAA;AAEjB,iFAA0G;AAAjG,0IAAA,yBAAyB,OAAA;AAAE,6IAAA,4BAA4B,OAAA;AAChE,8DAQsC;AAPpC,mHAAA,kBAAkB,OAAA;AAIlB,oHAAA,mBAAmB,OAAA;AACnB,qHAAA,oBAAoB,OAAA;AACpB,0HAAA,yBAAyB,OAAA;AAE3B,gEAYuC;AAXrC,oHAAA,kBAAkB,OAAA;AAGlB,uHAAA,qBAAqB,OAAA;AACrB,2HAAA,yBAAyB,OAAA;AACzB,uHAAA,qBAAqB,OAAA;AACrB,2HAAA,yBAAyB,OAAA;AACzB,yHAAA,uBAAuB,OAAA;AACvB,oHAAA,kBAAkB,OAAA;AAElB,gHAAA,cAAc,OAAA;AAEhB,wFAUmD;AATjD,6IAAA,+BAA+B,OAAA;AAC/B,+HAAA,iBAAiB,OAAA;AAGjB,wIAAA,0BAA0B,OAAA;AAC1B,8IAAA,gCAAgC,OAAA;AAChC,gIAAA,kBAAkB,OAAA;AAClB,qIAAA,uBAAuB,OAAA;AACvB,qIAAA,uBAAuB,OAAA;AAEzB,uDAM4B;AAL1B,+HAAA,2BAA2B,OAAA;AAC3B,+HAAA,2BAA2B,OAAA;AAC3B,mIAAA,+BAA+B,OAAA;AAC/B,kIAAA,8BAA8B,OAAA;AAC9B,0HAAA,sBAAsB,OAAA;AAExB,+DAIgC;AAH9B,0HAAA,kBAAkB,OAAA;AAClB,+HAAA,uBAAuB,OAAA;AACvB,8HAAA,sBAAsB,OAAA;AAExB,+DAIgC;AAH9B,0HAAA,kBAAkB,OAAA;AAIpB,mEAIkC;AAHhC,0IAAA,gCAAgC,OAAA;AAChC,0IAAA,gCAAgC,OAAA;AAChC,wIAAA,8BAA8B,OAAA;AAQhC,iDAO4B;AAN1B,+HAAA,iCAAiC,OAAA;AACjC,qHAAA,uBAAuB,OAAA;AACvB,sHAAA,wBAAwB,OAAA;AACxB,mHAAA,qBAAqB,OAAA;AACrB,wHAAA,0BAA0B,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-caller.guard.d.ts","sourceRoot":"","sources":["../../../src/nestjs/auth/internal-caller.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAKjB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"internal-caller.guard.d.ts","sourceRoot":"","sources":["../../../src/nestjs/auth/internal-caller.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAKjB,MAAM,gBAAgB,CAAC;AAuExB,qBACa,mBAAoB,YAAW,WAAW;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;IAE/D,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO;CA6DhD"}
|
|
@@ -10,7 +10,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
10
10
|
exports.InternalCallerGuard = void 0;
|
|
11
11
|
const common_1 = require("@nestjs/common");
|
|
12
12
|
const subject_1 = require("@xemahq/contracts/subject");
|
|
13
|
+
const org_authority_1 = require("../../lib/auth/org-authority");
|
|
13
14
|
const request_context_1 = require("../../lib/request-context");
|
|
15
|
+
const decorator_metadata_1 = require("../decorator-metadata");
|
|
16
|
+
const proven_org_authority_required_1 = require("./proven-org-authority-required");
|
|
14
17
|
let InternalCallerGuard = InternalCallerGuard_1 = class InternalCallerGuard {
|
|
15
18
|
logger = new common_1.Logger(InternalCallerGuard_1.name);
|
|
16
19
|
canActivate(context) {
|
|
@@ -28,6 +31,25 @@ let InternalCallerGuard = InternalCallerGuard_1 = class InternalCallerGuard {
|
|
|
28
31
|
`(tokenClass=${ctx.tokenClass}, delegated=false).`);
|
|
29
32
|
throw new common_1.ForbiddenException('This endpoint is restricted to platform service callers.');
|
|
30
33
|
}
|
|
34
|
+
const requireProvenOrgAuthority = (0, decorator_metadata_1.readDecoratorOverride)(proven_org_authority_required_1.REQUIRE_PROVEN_ORG_AUTHORITY, [
|
|
35
|
+
context.getHandler(),
|
|
36
|
+
context.getClass(),
|
|
37
|
+
]) === true;
|
|
38
|
+
const orgProven = ctx.orgAuthority !== undefined && (0, org_authority_1.isOrgAuthorityProven)(ctx.orgAuthority);
|
|
39
|
+
if (requireProvenOrgAuthority && !orgProven) {
|
|
40
|
+
this.logger.warn({
|
|
41
|
+
message: 'internal-caller-org-authority-unproven',
|
|
42
|
+
actorId: ctx.actorId,
|
|
43
|
+
source: ctx.orgAuthority?.source,
|
|
44
|
+
assertedOrgId: ctx.orgAuthority?.assertedOrgId,
|
|
45
|
+
});
|
|
46
|
+
throw new common_1.ForbiddenException({
|
|
47
|
+
code: 'ORG_CLAIM_REQUIRED',
|
|
48
|
+
message: 'This endpoint requires a caller whose token BACKS the organization ' +
|
|
49
|
+
'it named. A relayed X-Xema-Org-Id header is routing context, not a ' +
|
|
50
|
+
'tenancy claim.',
|
|
51
|
+
});
|
|
52
|
+
}
|
|
31
53
|
return true;
|
|
32
54
|
}
|
|
33
55
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-caller.guard.js","sourceRoot":"","sources":["../../../src/nestjs/auth/internal-caller.guard.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAOwB;AAExB,uDAAuD;AACvD,+DAA4D;
|
|
1
|
+
{"version":3,"file":"internal-caller.guard.js","sourceRoot":"","sources":["../../../src/nestjs/auth/internal-caller.guard.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAOwB;AAExB,uDAAuD;AACvD,gEAAoE;AACpE,+DAA4D;AAC5D,8DAA8D;AAC9D,mFAA+E;AAkExE,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IACb,MAAM,GAAG,IAAI,eAAM,CAAC,qBAAmB,CAAC,IAAI,CAAC,CAAC;IAE/D,WAAW,CAAC,OAAyB;QACnC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAW,CAAC;QAC7D,MAAM,GAAG,GAAI,OAA8C,CACzD,iCAAe,CACc,CAAC;QAEhC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,wDAAwD;gBACtD,2EAA2E,CAC9E,CAAC;YACF,MAAM,IAAI,qCAA4B,CACpC,wDAAwD,CACzD,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,KAAK,oBAAU,CAAC,UAAU,CAAC;QAC3D,MAAM,WAAW,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,sCAAsC,GAAG,CAAC,OAAO,GAAG;gBAClD,eAAe,GAAG,CAAC,UAAU,qBAAqB,CACrD,CAAC;YACF,MAAM,IAAI,2BAAkB,CAC1B,0DAA0D,CAC3D,CAAC;QACJ,CAAC;QAKD,MAAM,yBAAyB,GAC7B,IAAA,0CAAqB,EAAU,4DAA4B,EAAE;YAC3D,OAAO,CAAC,UAAU,EAAE;YACpB,OAAO,CAAC,QAAQ,EAAE;SACnB,CAAC,KAAK,IAAI,CAAC;QAMd,MAAM,SAAS,GACb,GAAG,CAAC,YAAY,KAAK,SAAS,IAAI,IAAA,oCAAoB,EAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC3E,IAAI,yBAAyB,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACf,OAAO,EAAE,wCAAwC;gBACjD,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,MAAM,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM;gBAChC,aAAa,EAAE,GAAG,CAAC,YAAY,EAAE,aAAa;aAC/C,CAAC,CAAC;YACH,MAAM,IAAI,2BAAkB,CAAC;gBAC3B,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EACL,qEAAqE;oBACrE,qEAAqE;oBACrE,gBAAgB;aACnB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAhEY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;GACA,mBAAmB,CAgE/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proven-org-authority-required.d.ts","sourceRoot":"","sources":["../../../src/nestjs/auth/proven-org-authority-required.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,4BAA4B,sCAAsC,CAAC;AAyHhF,eAAO,MAAM,yBAAyB,QAAO,eAAe,GAC1D,cAAiE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RequireProvenOrgAuthority = exports.REQUIRE_PROVEN_ORG_AUTHORITY = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
exports.REQUIRE_PROVEN_ORG_AUTHORITY = 'xema:require-proven-org-authority';
|
|
6
|
+
const RequireProvenOrgAuthority = () => (0, common_1.SetMetadata)(exports.REQUIRE_PROVEN_ORG_AUTHORITY, true);
|
|
7
|
+
exports.RequireProvenOrgAuthority = RequireProvenOrgAuthority;
|
|
8
|
+
//# sourceMappingURL=proven-org-authority-required.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proven-org-authority-required.js","sourceRoot":"","sources":["../../../src/nestjs/auth/proven-org-authority-required.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAOhC,QAAA,4BAA4B,GAAG,mCAAmC,CAAC;AAyHzE,MAAM,yBAAyB,GAAG,GACxB,EAAE,CAAC,IAAA,oBAAW,EAAC,oCAA4B,EAAE,IAAI,CAAC,CAAC;AADvD,QAAA,yBAAyB,6BAC8B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-actor.guard.d.ts","sourceRoot":"","sources":["../../../src/nestjs/auth/service-actor.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAKjB,MAAM,gBAAgB,CAAC;AAIxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"service-actor.guard.d.ts","sourceRoot":"","sources":["../../../src/nestjs/auth/service-actor.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAKjB,MAAM,gBAAgB,CAAC;AAIxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAehE,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,YAAY,CAAC,GACrD,OAAO,CAET;AA8BD,qBACa,iBAAkB,YAAW,WAAW;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAE7D,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO;CAgGhD"}
|
|
@@ -12,7 +12,8 @@ exports.isDirectServiceActor = isDirectServiceActor;
|
|
|
12
12
|
const common_1 = require("@nestjs/common");
|
|
13
13
|
const subject_1 = require("@xemahq/contracts/subject");
|
|
14
14
|
const request_context_1 = require("../../lib/request-context");
|
|
15
|
-
const
|
|
15
|
+
const proven_org_authority_required_1 = require("./proven-org-authority-required");
|
|
16
|
+
const org_authority_1 = require("../../lib/auth/org-authority");
|
|
16
17
|
const decorator_metadata_1 = require("../decorator-metadata");
|
|
17
18
|
function isDirectServiceActor(ctx) {
|
|
18
19
|
return ctx.tokenClass === subject_1.TokenClass.ServiceJwt && ctx.actorChain.length === 0;
|
|
@@ -46,20 +47,24 @@ let ServiceActorGuard = ServiceActorGuard_1 = class ServiceActorGuard {
|
|
|
46
47
|
'Mint a token via IdentityBootstrapService.getAccessToken().',
|
|
47
48
|
});
|
|
48
49
|
}
|
|
49
|
-
const
|
|
50
|
+
const requireProvenOrgAuthority = (0, decorator_metadata_1.readDecoratorOverride)(proven_org_authority_required_1.REQUIRE_PROVEN_ORG_AUTHORITY, [
|
|
50
51
|
context.getHandler(),
|
|
51
52
|
context.getClass(),
|
|
52
53
|
]) === true;
|
|
53
|
-
|
|
54
|
+
const orgProven = ctx.orgAuthority !== undefined && (0, org_authority_1.isOrgAuthorityProven)(ctx.orgAuthority);
|
|
55
|
+
if (requireProvenOrgAuthority && !orgProven) {
|
|
54
56
|
this.logger.warn({
|
|
55
|
-
message: 'service-actor-org-claim-required-but-
|
|
57
|
+
message: 'service-actor-org-claim-required-but-unproven',
|
|
56
58
|
route: `${request.method} ${request.originalUrl}`,
|
|
57
59
|
actorId: ctx.actorId,
|
|
60
|
+
orgAuthority: ctx.orgAuthority?.source,
|
|
58
61
|
});
|
|
59
62
|
throw new common_1.ForbiddenException({
|
|
60
63
|
code: 'ORG_CLAIM_REQUIRED',
|
|
61
|
-
message: 'This endpoint requires a tenant-scoped service token
|
|
62
|
-
'xema_org_id claim
|
|
64
|
+
message: 'This endpoint requires a tenant-scoped service token: the org must ' +
|
|
65
|
+
'be backed by a signed `xema_org_id` claim, not by the ' +
|
|
66
|
+
'`X-Xema-Org-Id` header alone. Mint with mintOrgScopedToken from ' +
|
|
67
|
+
"'@xemahq/platform-common'.",
|
|
63
68
|
});
|
|
64
69
|
}
|
|
65
70
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-actor.guard.js","sourceRoot":"","sources":["../../../src/nestjs/auth/service-actor.guard.ts"],"names":[],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"service-actor.guard.js","sourceRoot":"","sources":["../../../src/nestjs/auth/service-actor.guard.ts"],"names":[],"mappings":";;;;;;;;;;AA0BA,oDAIC;AA9BD,2CAOwB;AAExB,uDAAuD;AACvD,+DAA4D;AAE5D,mFAA+E;AAC/E,gEAAoE;AACpE,8DAA8D;AAY9D,SAAgB,oBAAoB,CAClC,GAAsD;IAEtD,OAAO,GAAG,CAAC,UAAU,KAAK,oBAAU,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC;AACjF,CAAC;AA+BM,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IACX,MAAM,GAAG,IAAI,eAAM,CAAC,mBAAiB,CAAC,IAAI,CAAC,CAAC;IAE7D,WAAW,CAAC,OAAyB;QACnC,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAW,CAAC;QAC7D,MAAM,GAAG,GAAI,OAA8C,CACzD,iCAAe,CACc,CAAC;QAEhC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,sDAAsD;gBACpD,4EAA4E,CAC/E,CAAC;YACF,MAAM,IAAI,qCAA4B,CAAC;gBACrC,IAAI,EAAE,yBAAyB;gBAC/B,OAAO,EAAE,wDAAwD;aAClE,CAAC,CAAC;QACL,CAAC;QAQD,MAAM,WAAW,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACf,OAAO,EAAE,wBAAwB;gBACjC,KAAK,EAAE,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,WAAW,EAAE;gBACjD,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI;gBAC7B,SAAS,EAAE,WAAW;aACvB,CAAC,CAAC;YACH,MAAM,IAAI,2BAAkB,CAAC;gBAC3B,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EACL,wEAAwE;oBACxE,6DAA6D;aAChE,CAAC,CAAC;QACL,CAAC;QAyBD,MAAM,yBAAyB,GAC7B,IAAA,0CAAqB,EAAU,4DAA4B,EAAE;YAC3D,OAAO,CAAC,UAAU,EAAE;YACpB,OAAO,CAAC,QAAQ,EAAE;SACnB,CAAC,KAAK,IAAI,CAAC;QAOd,MAAM,SAAS,GACb,GAAG,CAAC,YAAY,KAAK,SAAS,IAAI,IAAA,oCAAoB,EAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC3E,IAAI,yBAAyB,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBACf,OAAO,EAAE,+CAA+C;gBACxD,KAAK,EAAE,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,WAAW,EAAE;gBACjD,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM;aACvC,CAAC,CAAC;YACH,MAAM,IAAI,2BAAkB,CAAC;gBAC3B,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EACL,qEAAqE;oBACrE,wDAAwD;oBACxD,kEAAkE;oBAClE,4BAA4B;aAC/B,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAnGY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;GACA,iBAAiB,CAmG7B"}
|
|
@@ -6,6 +6,7 @@ export declare class ServiceTokenGuard implements CanActivate, OnApplicationBoot
|
|
|
6
6
|
constructor(authOptions?: AuthModuleOptions);
|
|
7
7
|
onApplicationBootstrap(): Promise<void>;
|
|
8
8
|
canActivate(context: ExecutionContext): Promise<boolean>;
|
|
9
|
+
private assertProvenOrgAuthority;
|
|
9
10
|
private assertServiceTokenClass;
|
|
10
11
|
private verifyToken;
|
|
11
12
|
private headerValue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-token.guard.d.ts","sourceRoot":"","sources":["../../../src/nestjs/auth/service-token.guard.ts"],"names":[],"mappings":"AAyEA,OAAO,EACL,WAAW,EACX,gBAAgB,EAKhB,sBAAsB,EAGvB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"service-token.guard.d.ts","sourceRoot":"","sources":["../../../src/nestjs/auth/service-token.guard.ts"],"names":[],"mappings":"AAyEA,OAAO,EACL,WAAW,EACX,gBAAgB,EAKhB,sBAAsB,EAGvB,MAAM,gBAAgB,CAAC;AAYxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAO/D,qBACa,iBAAkB,YAAW,WAAW,EAAE,sBAAsB;IAC3E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAC7D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;gBAK5C,WAAW,CAAC,EAAE,iBAAiB;IAoB3B,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvC,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAyH9D,OAAO,CAAC,wBAAwB;IAiIhC,OAAO,CAAC,uBAAuB;YAmCjB,WAAW;IAgBzB,OAAO,CAAC,WAAW;IA0BnB,OAAO,CAAC,2BAA2B;CA4BpC"}
|
|
@@ -17,9 +17,10 @@ exports.ServiceTokenGuard = void 0;
|
|
|
17
17
|
const common_1 = require("@nestjs/common");
|
|
18
18
|
const subject_1 = require("@xemahq/contracts/subject");
|
|
19
19
|
const oidc_guard_1 = require("@xemahq/oidc-guard");
|
|
20
|
+
const org_authority_1 = require("../../lib/auth/org-authority");
|
|
20
21
|
const org_claim_1 = require("../../lib/auth/org-claim");
|
|
21
22
|
const auth_module_options_1 = require("./auth-module-options");
|
|
22
|
-
const
|
|
23
|
+
const proven_org_authority_required_1 = require("./proven-org-authority-required");
|
|
23
24
|
const realm_token_verifier_1 = require("./realm-token-verifier");
|
|
24
25
|
const decorator_metadata_1 = require("../decorator-metadata");
|
|
25
26
|
let ServiceTokenGuard = ServiceTokenGuard_1 = class ServiceTokenGuard {
|
|
@@ -40,12 +41,15 @@ let ServiceTokenGuard = ServiceTokenGuard_1 = class ServiceTokenGuard {
|
|
|
40
41
|
const token = authHeader.substring(7);
|
|
41
42
|
try {
|
|
42
43
|
const payload = await this.verifyToken(token);
|
|
43
|
-
const
|
|
44
|
+
const requireProvenOrgAuthority = (0, decorator_metadata_1.readDecoratorOverride)(proven_org_authority_required_1.REQUIRE_PROVEN_ORG_AUTHORITY, [
|
|
44
45
|
context.getHandler(),
|
|
45
46
|
context.getClass(),
|
|
46
47
|
]) === true;
|
|
47
|
-
this.assertOrgClaimMatchesHeader(payload, request, requireOrgClaim);
|
|
48
48
|
this.assertServiceTokenClass(payload);
|
|
49
|
+
this.assertOrgClaimMatchesHeader(payload, request);
|
|
50
|
+
if (requireProvenOrgAuthority) {
|
|
51
|
+
this.assertProvenOrgAuthority(payload, request);
|
|
52
|
+
}
|
|
49
53
|
request.serviceAuth = payload;
|
|
50
54
|
return true;
|
|
51
55
|
}
|
|
@@ -62,10 +66,73 @@ let ServiceTokenGuard = ServiceTokenGuard_1 = class ServiceTokenGuard {
|
|
|
62
66
|
throw new common_1.UnauthorizedException('Invalid service token');
|
|
63
67
|
}
|
|
64
68
|
}
|
|
69
|
+
assertProvenOrgAuthority(claims, request) {
|
|
70
|
+
const headerName = org_claim_1.OrgHeaderName.Canonical;
|
|
71
|
+
const assertedOrgId = this.headerValue(request, 'x-xema-org-id') ?? '';
|
|
72
|
+
const verdict = (0, org_authority_1.resolveOrgAuthority)(claims, assertedOrgId, {
|
|
73
|
+
subjectKind: subject_1.SubjectKind.Service,
|
|
74
|
+
delegated: claims['act'] !== undefined && claims['act'] !== null,
|
|
75
|
+
});
|
|
76
|
+
if ((0, org_authority_1.isOrgAuthorityProven)(verdict)) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
switch (verdict.source) {
|
|
80
|
+
case org_authority_1.OrgAuthoritySource.NoOrgAsserted:
|
|
81
|
+
this.logger.warn({
|
|
82
|
+
message: 'service-token-org-header-required-but-absent',
|
|
83
|
+
});
|
|
84
|
+
throw new common_1.ForbiddenException({
|
|
85
|
+
code: 'ORG_HEADER_REQUIRED',
|
|
86
|
+
message: `This endpoint requires the ${headerName} tenant header.`,
|
|
87
|
+
});
|
|
88
|
+
case org_authority_1.OrgAuthoritySource.ClaimMismatch:
|
|
89
|
+
this.logger.warn({
|
|
90
|
+
message: 'service-token-tenant-claim-mismatch',
|
|
91
|
+
claimValue: verdict.tokenOrgId,
|
|
92
|
+
header: headerName,
|
|
93
|
+
headerValue: verdict.assertedOrgId,
|
|
94
|
+
});
|
|
95
|
+
throw new common_1.ForbiddenException({
|
|
96
|
+
code: 'ORG_CLAIM_MISMATCH',
|
|
97
|
+
message: `${headerName} does not match the tenant claim on the service token.`,
|
|
98
|
+
});
|
|
99
|
+
case org_authority_1.OrgAuthoritySource.ServiceRelayedContext:
|
|
100
|
+
case org_authority_1.OrgAuthoritySource.Unproven:
|
|
101
|
+
this.logger.warn({
|
|
102
|
+
message: 'service-token-org-claim-required-but-absent',
|
|
103
|
+
source: verdict.source,
|
|
104
|
+
});
|
|
105
|
+
throw new common_1.ForbiddenException({
|
|
106
|
+
code: 'ORG_CLAIM_REQUIRED',
|
|
107
|
+
message: 'This endpoint requires a tenant-scoped service token (missing ' +
|
|
108
|
+
'xema_org_id claim).',
|
|
109
|
+
});
|
|
110
|
+
case org_authority_1.OrgAuthoritySource.OrgClaim:
|
|
111
|
+
case org_authority_1.OrgAuthoritySource.OrgMembership:
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
throw new common_1.ForbiddenException({
|
|
115
|
+
code: 'ORG_AUTHORITY_UNRESOLVED',
|
|
116
|
+
message: 'Org authority could not be resolved for this request.',
|
|
117
|
+
});
|
|
118
|
+
}
|
|
65
119
|
assertServiceTokenClass(payload) {
|
|
66
120
|
const tokenClass = payload['token_class'];
|
|
67
|
-
if (typeof tokenClass
|
|
68
|
-
|
|
121
|
+
if (typeof tokenClass !== 'string' || tokenClass.length === 0) {
|
|
122
|
+
this.logger.warn({
|
|
123
|
+
message: 'service-token-class-missing',
|
|
124
|
+
issuer: typeof payload['iss'] === 'string' ? payload['iss'] : undefined,
|
|
125
|
+
azp: typeof payload['azp'] === 'string' ? payload['azp'] : undefined,
|
|
126
|
+
});
|
|
127
|
+
throw new common_1.ForbiddenException({
|
|
128
|
+
code: 'TOKEN_CLASS_MISSING',
|
|
129
|
+
message: 'This service endpoint requires a bearer that STATES its token ' +
|
|
130
|
+
'class. The presented token carries no token_class claim, which is ' +
|
|
131
|
+
'the shape of a browser login. If this is a machine caller, its ' +
|
|
132
|
+
'Keycloak client is not reconciled by identity-api.',
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
if (tokenClass !== subject_1.TokenClass.ServiceJwt) {
|
|
69
136
|
this.logger.warn({
|
|
70
137
|
message: 'service-token-class-mismatch',
|
|
71
138
|
tokenClass,
|
|
@@ -100,29 +167,14 @@ let ServiceTokenGuard = ServiceTokenGuard_1 = class ServiceTokenGuard {
|
|
|
100
167
|
}
|
|
101
168
|
return '';
|
|
102
169
|
}
|
|
103
|
-
assertOrgClaimMatchesHeader(claims, request
|
|
170
|
+
assertOrgClaimMatchesHeader(claims, request) {
|
|
104
171
|
const resolved = (0, org_claim_1.resolveOrgClaim)(claims);
|
|
105
172
|
if (!resolved) {
|
|
106
|
-
if (required) {
|
|
107
|
-
this.logger.warn({ message: 'service-token-org-claim-required-but-absent' });
|
|
108
|
-
throw new common_1.ForbiddenException({
|
|
109
|
-
code: 'ORG_CLAIM_REQUIRED',
|
|
110
|
-
message: 'This endpoint requires a tenant-scoped service token (missing ' +
|
|
111
|
-
'xema_org_id claim).',
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
173
|
return;
|
|
115
174
|
}
|
|
116
175
|
const headerName = org_claim_1.OrgHeaderName.Canonical;
|
|
117
176
|
const headerValue = this.headerValue(request, 'x-xema-org-id');
|
|
118
177
|
if (!headerValue) {
|
|
119
|
-
if (required) {
|
|
120
|
-
this.logger.warn({ message: 'service-token-org-header-required-but-absent' });
|
|
121
|
-
throw new common_1.ForbiddenException({
|
|
122
|
-
code: 'ORG_HEADER_REQUIRED',
|
|
123
|
-
message: `This endpoint requires the ${headerName} tenant header.`,
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
178
|
return;
|
|
127
179
|
}
|
|
128
180
|
if (resolved.value.toLowerCase() !== headerValue.toLowerCase()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-token.guard.js","sourceRoot":"","sources":["../../../src/nestjs/auth/service-token.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAyEA,2CAUwB;AACxB,
|
|
1
|
+
{"version":3,"file":"service-token.guard.js","sourceRoot":"","sources":["../../../src/nestjs/auth/service-token.guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-exception.filter.d.ts","sourceRoot":"","sources":["../../src/nestjs/global-exception.filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAS,aAAa,EAAU,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"global-exception.filter.d.ts","sourceRoot":"","sources":["../../src/nestjs/global-exception.filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAS,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAmC/E,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,OAAO,GACjB,IAAI,CAiCN;AAkDD,qBACa,qBAAsB,YAAW,eAAe;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IAEjE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI;IAQpD,OAAO,CAAC,YAAY;CAkCrB"}
|
|
@@ -11,13 +11,21 @@ exports.GlobalExceptionFilter = void 0;
|
|
|
11
11
|
exports.sendProblemResponse = sendProblemResponse;
|
|
12
12
|
const common_1 = require("@nestjs/common");
|
|
13
13
|
const http_1 = require("@xemahq/contracts/http");
|
|
14
|
+
const problem_extensions_1 = require("./problem-extensions");
|
|
14
15
|
const refusal_1 = require("./refusal");
|
|
16
|
+
const problemRenderLogger = new common_1.Logger('ProblemDetailsRenderer');
|
|
15
17
|
function sendProblemResponse(host, exception) {
|
|
16
18
|
const ctx = host.switchToHttp();
|
|
17
19
|
const response = ctx.getResponse();
|
|
18
20
|
const request = ctx.getRequest();
|
|
19
21
|
const refusal = (0, refusal_1.refusalFrom)(exception);
|
|
20
22
|
const traceId = traceIdFromRequest(request);
|
|
23
|
+
if (refusal.droppedExtensions !== undefined && refusal.droppedExtensions.length > 0) {
|
|
24
|
+
const thrower = exception instanceof Error ? exception.constructor.name : typeof exception;
|
|
25
|
+
problemRenderLogger.error(`${request.method} ${request.url} - ${refusal.status} ${refusal.code} - ` +
|
|
26
|
+
`problem extension member(s) DROPPED from a ${thrower}: ` +
|
|
27
|
+
(0, problem_extensions_1.describeDroppedProblemExtensions)(refusal.droppedExtensions));
|
|
28
|
+
}
|
|
21
29
|
response
|
|
22
30
|
.status(refusal.status)
|
|
23
31
|
.type(http_1.PROBLEM_DETAILS_CONTENT_TYPE)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-exception.filter.js","sourceRoot":"","sources":["../../src/nestjs/global-exception.filter.ts"],"names":[],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"global-exception.filter.js","sourceRoot":"","sources":["../../src/nestjs/global-exception.filter.ts"],"names":[],"mappings":"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"}
|