@acorex-platform/framework-server 0.0.32 → 0.0.37

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.
Files changed (213) hide show
  1. package/background-job/src/lib/schedule/background-job-schedule-scanner.service.d.ts.map +1 -1
  2. package/background-job/src/lib/schedule/background-job-schedule-scanner.service.js +46 -13
  3. package/background-job/src/lib/schedule/background-job-schedule-scanner.service.js.map +1 -1
  4. package/background-job/src/lib/store/background-job-schedule-store.service.d.ts +5 -1
  5. package/background-job/src/lib/store/background-job-schedule-store.service.d.ts.map +1 -1
  6. package/background-job/src/lib/store/background-job-schedule-store.service.js +8 -4
  7. package/background-job/src/lib/store/background-job-schedule-store.service.js.map +1 -1
  8. package/background-job/src/lib/store/background-job-store.service.js +2 -2
  9. package/background-job/src/lib/store/background-job-store.service.js.map +1 -1
  10. package/core/src/lib/runtime/runtime-authz.guard.d.ts +3 -2
  11. package/core/src/lib/runtime/runtime-authz.guard.d.ts.map +1 -1
  12. package/core/src/lib/runtime/runtime-authz.guard.js +7 -6
  13. package/core/src/lib/runtime/runtime-authz.guard.js.map +1 -1
  14. package/domain/seed/src/lib/category-companion-entity.builder.d.ts +1 -1
  15. package/domain/seed/src/lib/category-companion-entity.builder.d.ts.map +1 -1
  16. package/domain/seed/src/lib/category-companion-entity.builder.js +64 -0
  17. package/domain/seed/src/lib/category-companion-entity.builder.js.map +1 -1
  18. package/jql/schema/src/lib/generated/widget-data-types.bootstrap.js +1 -1
  19. package/jql/schema/src/lib/generated/widget-data-types.bootstrap.js.map +1 -1
  20. package/package.json +2 -2
  21. package/realtime/src/lib/auth/auth-security-alert-realtime.listener.d.ts +18 -0
  22. package/realtime/src/lib/auth/auth-security-alert-realtime.listener.d.ts.map +1 -0
  23. package/realtime/src/lib/auth/auth-security-alert-realtime.listener.js +90 -0
  24. package/realtime/src/lib/auth/auth-security-alert-realtime.listener.js.map +1 -0
  25. package/realtime/src/lib/delivery/socket-io-realtime.delivery.d.ts.map +1 -1
  26. package/realtime/src/lib/delivery/socket-io-realtime.delivery.js +9 -4
  27. package/realtime/src/lib/delivery/socket-io-realtime.delivery.js.map +1 -1
  28. package/realtime/src/lib/gateway/realtime-ws-auth.d.ts +1 -1
  29. package/realtime/src/lib/gateway/realtime-ws-auth.d.ts.map +1 -1
  30. package/realtime/src/lib/gateway/realtime-ws-auth.js +4 -2
  31. package/realtime/src/lib/gateway/realtime-ws-auth.js.map +1 -1
  32. package/realtime/src/lib/gateway/realtime.gateway.d.ts +1 -0
  33. package/realtime/src/lib/gateway/realtime.gateway.d.ts.map +1 -1
  34. package/realtime/src/lib/gateway/realtime.gateway.js +9 -2
  35. package/realtime/src/lib/gateway/realtime.gateway.js.map +1 -1
  36. package/realtime/src/lib/realtime.module.d.ts.map +1 -1
  37. package/realtime/src/lib/realtime.module.js +2 -0
  38. package/realtime/src/lib/realtime.module.js.map +1 -1
  39. package/realtime/src/lib/rooms/realtime-rooms.util.d.ts +8 -0
  40. package/realtime/src/lib/rooms/realtime-rooms.util.d.ts.map +1 -1
  41. package/realtime/src/lib/rooms/realtime-rooms.util.js +22 -0
  42. package/realtime/src/lib/rooms/realtime-rooms.util.js.map +1 -1
  43. package/realtime/src/lib/services/realtime-publisher.service.d.ts.map +1 -1
  44. package/realtime/src/lib/services/realtime-publisher.service.js +7 -1
  45. package/realtime/src/lib/services/realtime-publisher.service.js.map +1 -1
  46. package/realtime/src/lib/topics/realtime-topics.d.ts +1 -0
  47. package/realtime/src/lib/topics/realtime-topics.d.ts.map +1 -1
  48. package/realtime/src/lib/topics/realtime-topics.js +2 -1
  49. package/realtime/src/lib/topics/realtime-topics.js.map +1 -1
  50. package/realtime/src/lib/types/realtime.types.d.ts +19 -0
  51. package/realtime/src/lib/types/realtime.types.d.ts.map +1 -1
  52. package/realtime/src/lib/types/realtime.types.js.map +1 -1
  53. package/security/src/index.d.ts +4 -0
  54. package/security/src/index.d.ts.map +1 -1
  55. package/security/src/index.js +5 -0
  56. package/security/src/index.js.map +1 -1
  57. package/security/src/lib/auth/auth-cookie-response.util.d.ts.map +1 -1
  58. package/security/src/lib/auth/auth-cookie-response.util.js +4 -1
  59. package/security/src/lib/auth/auth-cookie-response.util.js.map +1 -1
  60. package/security/src/lib/auth/auth-cookie.service.d.ts +2 -0
  61. package/security/src/lib/auth/auth-cookie.service.d.ts.map +1 -1
  62. package/security/src/lib/auth/auth-cookie.service.js +17 -0
  63. package/security/src/lib/auth/auth-cookie.service.js.map +1 -1
  64. package/security/src/lib/auth/auth-csrf.middleware.d.ts +14 -0
  65. package/security/src/lib/auth/auth-csrf.middleware.d.ts.map +1 -0
  66. package/security/src/lib/auth/auth-csrf.middleware.js +60 -0
  67. package/security/src/lib/auth/auth-csrf.middleware.js.map +1 -0
  68. package/security/src/lib/auth/auth-identity-provider.source.d.ts +11 -0
  69. package/security/src/lib/auth/auth-identity-provider.source.d.ts.map +1 -1
  70. package/security/src/lib/auth/auth-identity-provider.source.js +6 -1
  71. package/security/src/lib/auth/auth-identity-provider.source.js.map +1 -1
  72. package/security/src/lib/auth/auth-local-credentials.service.d.ts +8 -0
  73. package/security/src/lib/auth/auth-local-credentials.service.d.ts.map +1 -1
  74. package/security/src/lib/auth/auth-local-credentials.service.js +41 -16
  75. package/security/src/lib/auth/auth-local-credentials.service.js.map +1 -1
  76. package/security/src/lib/auth/auth-max-device-sessions-policy.d.ts +14 -0
  77. package/security/src/lib/auth/auth-max-device-sessions-policy.d.ts.map +1 -0
  78. package/security/src/lib/auth/auth-max-device-sessions-policy.js +48 -0
  79. package/security/src/lib/auth/auth-max-device-sessions-policy.js.map +1 -0
  80. package/security/src/lib/auth/auth-runtime.handlers.d.ts +15 -3
  81. package/security/src/lib/auth/auth-runtime.handlers.d.ts.map +1 -1
  82. package/security/src/lib/auth/auth-runtime.handlers.js +51 -3
  83. package/security/src/lib/auth/auth-runtime.handlers.js.map +1 -1
  84. package/security/src/lib/auth/auth.config.d.ts +7 -0
  85. package/security/src/lib/auth/auth.config.d.ts.map +1 -1
  86. package/security/src/lib/auth/auth.config.js +8 -1
  87. package/security/src/lib/auth/auth.config.js.map +1 -1
  88. package/security/src/lib/auth/auth.events.d.ts +22 -0
  89. package/security/src/lib/auth/auth.events.d.ts.map +1 -1
  90. package/security/src/lib/auth/auth.events.js +3 -1
  91. package/security/src/lib/auth/auth.events.js.map +1 -1
  92. package/security/src/lib/auth/auth.service.d.ts +65 -5
  93. package/security/src/lib/auth/auth.service.d.ts.map +1 -1
  94. package/security/src/lib/auth/auth.service.js +311 -10
  95. package/security/src/lib/auth/auth.service.js.map +1 -1
  96. package/security/src/lib/auth/auth.types.d.ts +36 -0
  97. package/security/src/lib/auth/auth.types.d.ts.map +1 -1
  98. package/security/src/lib/auth/auth.types.js.map +1 -1
  99. package/security/src/lib/auth/device-session.service.d.ts +59 -1
  100. package/security/src/lib/auth/device-session.service.d.ts.map +1 -1
  101. package/security/src/lib/auth/device-session.service.js +299 -28
  102. package/security/src/lib/auth/device-session.service.js.map +1 -1
  103. package/security/src/lib/auth/jwt-auth.guard.d.ts +2 -1
  104. package/security/src/lib/auth/jwt-auth.guard.d.ts.map +1 -1
  105. package/security/src/lib/auth/jwt-auth.guard.js +4 -2
  106. package/security/src/lib/auth/jwt-auth.guard.js.map +1 -1
  107. package/security/src/lib/auth/login-attempt.service.d.ts +14 -3
  108. package/security/src/lib/auth/login-attempt.service.d.ts.map +1 -1
  109. package/security/src/lib/auth/login-attempt.service.js +35 -10
  110. package/security/src/lib/auth/login-attempt.service.js.map +1 -1
  111. package/security/src/lib/auth/request-meta.util.js +64 -11
  112. package/security/src/lib/auth/request-meta.util.js.map +1 -1
  113. package/security/src/lib/auth/token-revocation.constants.d.ts +9 -0
  114. package/security/src/lib/auth/token-revocation.constants.d.ts.map +1 -0
  115. package/security/src/lib/auth/token-revocation.constants.js +14 -0
  116. package/security/src/lib/auth/token-revocation.constants.js.map +1 -0
  117. package/security/src/lib/auth/token.service.d.ts +26 -1
  118. package/security/src/lib/auth/token.service.d.ts.map +1 -1
  119. package/security/src/lib/auth/token.service.js +105 -4
  120. package/security/src/lib/auth/token.service.js.map +1 -1
  121. package/security/src/lib/oauth/connect.controller.d.ts +81 -7
  122. package/security/src/lib/oauth/connect.controller.d.ts.map +1 -1
  123. package/security/src/lib/oauth/connect.controller.js +264 -36
  124. package/security/src/lib/oauth/connect.controller.js.map +1 -1
  125. package/security/src/lib/oauth/oauth-bff.util.d.ts +9 -0
  126. package/security/src/lib/oauth/oauth-bff.util.d.ts.map +1 -0
  127. package/security/src/lib/oauth/oauth-bff.util.js +30 -0
  128. package/security/src/lib/oauth/oauth-bff.util.js.map +1 -0
  129. package/security/src/lib/oauth/oauth-claims.util.d.ts +6 -0
  130. package/security/src/lib/oauth/oauth-claims.util.d.ts.map +1 -0
  131. package/security/src/lib/oauth/oauth-claims.util.js +36 -0
  132. package/security/src/lib/oauth/oauth-claims.util.js.map +1 -0
  133. package/security/src/lib/oauth/oauth-client-registry.service.d.ts +25 -0
  134. package/security/src/lib/oauth/oauth-client-registry.service.d.ts.map +1 -0
  135. package/security/src/lib/oauth/oauth-client-registry.service.js +201 -0
  136. package/security/src/lib/oauth/oauth-client-registry.service.js.map +1 -0
  137. package/security/src/lib/oauth/oauth-connect.exception-filter.d.ts +10 -0
  138. package/security/src/lib/oauth/oauth-connect.exception-filter.d.ts.map +1 -0
  139. package/security/src/lib/oauth/oauth-connect.exception-filter.js +59 -0
  140. package/security/src/lib/oauth/oauth-connect.exception-filter.js.map +1 -0
  141. package/security/src/lib/oauth/oauth-error.util.d.ts +23 -0
  142. package/security/src/lib/oauth/oauth-error.util.d.ts.map +1 -0
  143. package/security/src/lib/oauth/oauth-error.util.js +114 -0
  144. package/security/src/lib/oauth/oauth-error.util.js.map +1 -0
  145. package/security/src/lib/oauth/oauth-grant-store.interface.d.ts +16 -0
  146. package/security/src/lib/oauth/oauth-grant-store.interface.d.ts.map +1 -0
  147. package/security/src/lib/oauth/oauth-grant-store.interface.js +14 -0
  148. package/security/src/lib/oauth/oauth-grant-store.interface.js.map +1 -0
  149. package/security/src/lib/oauth/oauth-issuer.util.d.ts +7 -0
  150. package/security/src/lib/oauth/oauth-issuer.util.d.ts.map +1 -0
  151. package/security/src/lib/oauth/oauth-issuer.util.js +25 -0
  152. package/security/src/lib/oauth/oauth-issuer.util.js.map +1 -0
  153. package/security/src/lib/oauth/oauth-op.service.d.ts +35 -0
  154. package/security/src/lib/oauth/oauth-op.service.d.ts.map +1 -0
  155. package/security/src/lib/oauth/oauth-op.service.js +152 -0
  156. package/security/src/lib/oauth/oauth-op.service.js.map +1 -0
  157. package/security/src/lib/oauth/oauth-op.types.d.ts +73 -0
  158. package/security/src/lib/oauth/oauth-op.types.d.ts.map +1 -0
  159. package/security/src/lib/oauth/oauth-op.types.js +5 -0
  160. package/security/src/lib/oauth/oauth-op.types.js.map +1 -0
  161. package/security/src/lib/oauth/oauth-provider-hint.util.d.ts +8 -0
  162. package/security/src/lib/oauth/oauth-provider-hint.util.d.ts.map +1 -0
  163. package/security/src/lib/oauth/oauth-provider-hint.util.js +24 -0
  164. package/security/src/lib/oauth/oauth-provider-hint.util.js.map +1 -0
  165. package/security/src/lib/oauth/oauth-redis-oidc-adapter.d.ts +27 -0
  166. package/security/src/lib/oauth/oauth-redis-oidc-adapter.d.ts.map +1 -0
  167. package/security/src/lib/oauth/oauth-redis-oidc-adapter.js +159 -0
  168. package/security/src/lib/oauth/oauth-redis-oidc-adapter.js.map +1 -0
  169. package/security/src/lib/oauth/oauth-rp.service.d.ts +53 -0
  170. package/security/src/lib/oauth/oauth-rp.service.d.ts.map +1 -0
  171. package/security/src/lib/oauth/oauth-rp.service.js +371 -0
  172. package/security/src/lib/oauth/oauth-rp.service.js.map +1 -0
  173. package/security/src/lib/oauth/oauth-rp.types.d.ts +25 -0
  174. package/security/src/lib/oauth/oauth-rp.types.d.ts.map +1 -0
  175. package/security/src/lib/oauth/oauth-rp.types.js +5 -0
  176. package/security/src/lib/oauth/oauth-rp.types.js.map +1 -0
  177. package/security/src/lib/oauth/oidc-provider-engine.service.d.ts +25 -0
  178. package/security/src/lib/oauth/oidc-provider-engine.service.d.ts.map +1 -0
  179. package/security/src/lib/oauth/oidc-provider-engine.service.js +208 -0
  180. package/security/src/lib/oauth/oidc-provider-engine.service.js.map +1 -0
  181. package/security/src/lib/oauth/platform-oauth.service.d.ts +43 -14
  182. package/security/src/lib/oauth/platform-oauth.service.d.ts.map +1 -1
  183. package/security/src/lib/oauth/platform-oauth.service.js +177 -170
  184. package/security/src/lib/oauth/platform-oauth.service.js.map +1 -1
  185. package/security/src/lib/oauth/platform-oauth.types.d.ts +11 -3
  186. package/security/src/lib/oauth/platform-oauth.types.d.ts.map +1 -1
  187. package/security/src/lib/oauth/platform-oauth.types.js.map +1 -1
  188. package/security/src/lib/oauth/redis-oauth-grant-store.service.d.ts +22 -0
  189. package/security/src/lib/oauth/redis-oauth-grant-store.service.d.ts.map +1 -0
  190. package/security/src/lib/oauth/redis-oauth-grant-store.service.js +132 -0
  191. package/security/src/lib/oauth/redis-oauth-grant-store.service.js.map +1 -0
  192. package/security/src/lib/oauth/testing/in-memory-oauth-grant-store.d.ts +14 -0
  193. package/security/src/lib/oauth/testing/in-memory-oauth-grant-store.d.ts.map +1 -0
  194. package/security/src/lib/oauth/testing/in-memory-oauth-grant-store.js +46 -0
  195. package/security/src/lib/oauth/testing/in-memory-oauth-grant-store.js.map +1 -0
  196. package/security/src/lib/oauth/testing/jest-empty-module.d.ts +4 -0
  197. package/security/src/lib/oauth/testing/jest-empty-module.d.ts.map +1 -0
  198. package/security/src/lib/oauth/testing/jest-empty-module.js +11 -0
  199. package/security/src/lib/oauth/testing/jest-empty-module.js.map +1 -0
  200. package/security/src/lib/oauth/testing/mock-oidc-provider.d.ts +49 -0
  201. package/security/src/lib/oauth/testing/mock-oidc-provider.d.ts.map +1 -0
  202. package/security/src/lib/oauth/testing/mock-oidc-provider.js +158 -0
  203. package/security/src/lib/oauth/testing/mock-oidc-provider.js.map +1 -0
  204. package/security/src/lib/security.module.d.ts.map +1 -1
  205. package/security/src/lib/security.module.js +31 -0
  206. package/security/src/lib/security.module.js.map +1 -1
  207. package/security/src/lib/session/backend-session.types.d.ts +2 -0
  208. package/security/src/lib/session/backend-session.types.d.ts.map +1 -1
  209. package/security/src/lib/session/backend-session.types.js.map +1 -1
  210. package/security/src/lib/session/optional-jwt-session.middleware.d.ts +6 -4
  211. package/security/src/lib/session/optional-jwt-session.middleware.d.ts.map +1 -1
  212. package/security/src/lib/session/optional-jwt-session.middleware.js +18 -7
  213. package/security/src/lib/session/optional-jwt-session.middleware.js.map +1 -1
@@ -1,30 +1,104 @@
1
1
  import type { Request, Response } from 'express';
2
+ import { AuthService } from '../auth/auth.service';
3
+ import { AuthLocalCredentialsService } from '../auth/auth-local-credentials.service';
2
4
  import { AuthCookieService } from '../auth/auth-cookie.service';
5
+ import { TokenResolverService } from '../auth/token-resolver.service';
3
6
  import { TokenService } from '../auth/token.service';
4
7
  import { PlatformOAuthService } from './platform-oauth.service';
5
- import type { OAuthTokenResponse } from './platform-oauth.types';
8
+ import { OidcProviderEngineService } from './oidc-provider-engine.service';
6
9
  export declare class ConnectController {
7
10
  private readonly oauth;
11
+ private readonly oidcEngine;
12
+ private readonly auth;
8
13
  private readonly cookies;
9
14
  private readonly tokens;
10
- constructor(oauth: PlatformOAuthService, cookies: AuthCookieService, tokens: TokenService);
11
- getDiscoveryDocument(req: Request): {
15
+ private readonly tokenResolver;
16
+ private readonly credentials;
17
+ constructor(oauth: PlatformOAuthService, oidcEngine: OidcProviderEngineService, auth: AuthService, cookies: AuthCookieService, tokens: TokenService, tokenResolver: TokenResolverService, credentials: AuthLocalCredentialsService);
18
+ getDiscoveryDocument(req: Request): Promise<{
12
19
  issuer: string;
13
20
  authorization_endpoint: string;
14
21
  token_endpoint: string;
15
22
  jwks_uri: string;
23
+ userinfo_endpoint: string;
24
+ revocation_endpoint: string;
25
+ end_session_endpoint: string;
16
26
  response_types_supported: string[];
17
27
  grant_types_supported: string[];
18
28
  code_challenge_methods_supported: string[];
19
29
  scopes_supported: string[];
20
- };
30
+ subject_types_supported: string[];
31
+ id_token_signing_alg_values_supported: string[];
32
+ } | {
33
+ federation_authorize_init_endpoint: string;
34
+ issuer: string;
35
+ authorization_endpoint: string;
36
+ token_endpoint: string;
37
+ jwks_uri: string;
38
+ userinfo_endpoint: string;
39
+ revocation_endpoint: string;
40
+ end_session_endpoint: string;
41
+ response_types_supported: string[];
42
+ grant_types_supported: string[];
43
+ code_challenge_methods_supported: string[];
44
+ scopes_supported: string[];
45
+ subject_types_supported: string[];
46
+ id_token_signing_alg_values_supported: string[];
47
+ }>;
48
+ getOauthAuthorizationServerMetadata(req: Request): Promise<{
49
+ issuer: string;
50
+ authorization_endpoint: string;
51
+ token_endpoint: string;
52
+ jwks_uri: string;
53
+ userinfo_endpoint: string;
54
+ revocation_endpoint: string;
55
+ end_session_endpoint: string;
56
+ response_types_supported: string[];
57
+ grant_types_supported: string[];
58
+ code_challenge_methods_supported: string[];
59
+ scopes_supported: string[];
60
+ subject_types_supported: string[];
61
+ id_token_signing_alg_values_supported: string[];
62
+ } | {
63
+ federation_authorize_init_endpoint: string;
64
+ issuer: string;
65
+ authorization_endpoint: string;
66
+ token_endpoint: string;
67
+ jwks_uri: string;
68
+ userinfo_endpoint: string;
69
+ revocation_endpoint: string;
70
+ end_session_endpoint: string;
71
+ response_types_supported: string[];
72
+ grant_types_supported: string[];
73
+ code_challenge_methods_supported: string[];
74
+ scopes_supported: string[];
75
+ subject_types_supported: string[];
76
+ id_token_signing_alg_values_supported: string[];
77
+ }>;
21
78
  getJwksDocument(): {
22
- keys: unknown[];
79
+ keys: Array<Record<string, unknown>>;
23
80
  };
81
+ authorizeInit(body: Record<string, unknown>, req: Request, res: Response): Promise<{
82
+ authorizeUrl: string;
83
+ }>;
24
84
  authorize(query: Record<string, string | undefined>, req: Request, res: Response): Promise<void>;
85
+ /**
86
+ * oidc-provider post-login resume (`GET /connect/authorize/:uid`).
87
+ * Must not require an identity_provider hint — this is the standard OP path.
88
+ */
89
+ authorizeResume(req: Request, res: Response): Promise<void>;
90
+ /**
91
+ * oidc-provider login/consent UI and form posts (standard OP path only).
92
+ * Not used by first-party Pure BFF federation broker.
93
+ * Explicit segments avoid Nest 11 / Express 5 wildcard matching gaps.
94
+ */
95
+ oidcInteraction(req: Request, res: Response): Promise<void>;
25
96
  externalCallback(providerKey: string, code: string | undefined, state: string | undefined, error: string | undefined, res: Response): Promise<void>;
26
- token(req: Request, res: Response): Promise<OAuthTokenResponse>;
27
- /** Platform API issuer from the incoming request (no hardcoded host/port). */
97
+ token(req: Request, res: Response): Promise<void>;
98
+ userInfo(req: Request, res: Response): Promise<void>;
99
+ revoke(req: Request, res: Response): Promise<void>;
100
+ endSession(query: Record<string, string | undefined>, req: Request, res: Response): Promise<void>;
101
+ /** Platform OAuth issuer — prefer `AUTH_OAUTH_ISSUER`, else derive from request. */
28
102
  private resolveIssuer;
29
103
  private readFormBody;
30
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"connect.controller.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/oauth/connect.controller.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGhE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAIjE,qBAGa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFN,KAAK,EAAE,oBAAoB,EAC3B,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,YAAY;IAKvC,oBAAoB,CAAQ,GAAG,EAAE,OAAO;;;;;;;;;;IAMxC,eAAe;;;IAMT,SAAS,CACJ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC3C,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACnB,OAAO,CAAC,IAAI,CAAC;IAuBV,gBAAgB,CACE,WAAW,EAAE,MAAM,EAC1B,IAAI,EAAE,MAAM,GAAG,SAAS,EACvB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,KAAK,EAAE,MAAM,GAAG,SAAS,EAClC,GAAG,EAAE,QAAQ,GACnB,OAAO,CAAC,IAAI,CAAC;IAqBV,KAAK,CAAQ,GAAG,EAAE,OAAO,EAA8B,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAiBxG,8EAA8E;IAC9E,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,YAAY;CAUrB"}
1
+ {"version":3,"file":"connect.controller.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/oauth/connect.controller.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAGtE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAc3E,qBAIa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW;gBANX,KAAK,EAAE,oBAAoB,EAC3B,UAAU,EAAE,yBAAyB,EACrC,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,oBAAoB,EACnC,WAAW,EAAE,2BAA2B;IAKrD,oBAAoB,CAAQ,GAAG,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkBxC,mCAAmC,CAAQ,GAAG,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAM7D,eAAe;;;IAMT,aAAa,CACT,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,GAAG,EAAE,OAAO,EACS,GAAG,EAAE,QAAQ,GACxC,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IA0B9B,SAAS,CACJ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC3C,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACnB,OAAO,CAAC,IAAI,CAAC;IA6BhB;;;OAGG;IAGG,eAAe,CAAQ,GAAG,EAAE,OAAO,EAAS,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/E;;;;OAIG;IAGG,eAAe,CAAQ,GAAG,EAAE,OAAO,EAAS,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IASzE,gBAAgB,CACE,WAAW,EAAE,MAAM,EAC1B,IAAI,EAAE,MAAM,GAAG,SAAS,EACvB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,KAAK,EAAE,MAAM,GAAG,SAAS,EAClC,GAAG,EAAE,QAAQ,GACnB,OAAO,CAAC,IAAI,CAAC;IAqBV,KAAK,CAAQ,GAAG,EAAE,OAAO,EAAS,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC/D,QAAQ,CAAQ,GAAG,EAAE,OAAO,EAAS,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAkClE,MAAM,CAAQ,GAAG,EAAE,OAAO,EAAS,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BhE,UAAU,CACL,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAC3C,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACnB,OAAO,CAAC,IAAI,CAAC;IAiChB,oFAAoF;IACpF,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;CAUrB"}
@@ -4,78 +4,237 @@ exports.ConnectController = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const common_1 = require("@nestjs/common");
6
6
  const swagger_1 = require("@nestjs/swagger");
7
+ const auth_service_1 = require("../auth/auth.service");
8
+ const auth_local_credentials_service_1 = require("../auth/auth-local-credentials.service");
7
9
  const auth_cookie_service_1 = require("../auth/auth-cookie.service");
10
+ const token_resolver_service_1 = require("../auth/token-resolver.service");
8
11
  const public_decorator_1 = require("../auth/public.decorator");
9
12
  const request_meta_util_1 = require("../auth/request-meta.util");
10
13
  const token_service_1 = require("../auth/token.service");
11
14
  const platform_oauth_service_1 = require("./platform-oauth.service");
15
+ const oidc_provider_engine_service_1 = require("./oidc-provider-engine.service");
16
+ const oauth_issuer_util_1 = require("./oauth-issuer.util");
17
+ const oauth_connect_exception_filter_1 = require("./oauth-connect.exception-filter");
18
+ const oauth_provider_hint_util_1 = require("./oauth-provider-hint.util");
19
+ const oauth_error_util_1 = require("./oauth-error.util");
20
+ const auth_config_1 = require("../auth/auth.config");
12
21
  //#region ---- Platform OAuth connect endpoints ----
13
22
  let ConnectController = class ConnectController {
14
- constructor(oauth, cookies, tokens) {
23
+ constructor(oauth, oidcEngine, auth, cookies, tokens, tokenResolver, credentials) {
15
24
  this.oauth = oauth;
25
+ this.oidcEngine = oidcEngine;
26
+ this.auth = auth;
16
27
  this.cookies = cookies;
17
28
  this.tokens = tokens;
29
+ this.tokenResolver = tokenResolver;
30
+ this.credentials = credentials;
18
31
  }
19
- getDiscoveryDocument(req) {
20
- return this.oauth.getDiscoveryDocument(this.resolveIssuer(req));
32
+ async getDiscoveryDocument(req) {
33
+ const issuer = this.resolveIssuer(req);
34
+ const platformDoc = this.oauth.getDiscoveryDocument(issuer);
35
+ const engineDoc = await this.oidcEngine.getDiscoveryDocument();
36
+ if (engineDoc) {
37
+ return {
38
+ ...engineDoc,
39
+ ...platformDoc,
40
+ federation_authorize_init_endpoint: `${issuer}/connect/authorize/init`,
41
+ };
42
+ }
43
+ return platformDoc;
44
+ }
45
+ async getOauthAuthorizationServerMetadata(req) {
46
+ return this.getDiscoveryDocument(req);
21
47
  }
22
48
  getJwksDocument() {
23
49
  return this.oauth.getJwksDocument();
24
50
  }
25
- async authorize(query, req, res) {
26
- const provider = query['acr_values']?.trim();
27
- if (!provider) {
28
- throw new common_1.BadRequestException('acr_values (identity provider key) is required.');
29
- }
30
- const redirectUrl = await this.oauth.beginAuthorization({
31
- responseType: query['response_type']?.trim() || '',
32
- clientId: query['client_id']?.trim() || '',
33
- redirectUri: query['redirect_uri']?.trim() || '',
34
- scope: query['scope']?.trim() || 'openid profile email',
35
- codeChallenge: query['code_challenge']?.trim() || '',
36
- codeChallengeMethod: query['code_challenge_method']?.trim() || '',
51
+ async authorizeInit(body, req, res) {
52
+ this.cookies.applyCsrfCookie(res);
53
+ const clientId = String(body['client_id'] ?? body['clientId'] ?? '').trim();
54
+ const redirectUri = String(body['redirect_uri'] ?? body['redirectUri'] ?? '').trim();
55
+ const scope = String(body['scope'] ?? 'openid profile email offline_access').trim();
56
+ const provider = (0, oauth_provider_hint_util_1.resolveOAuthProviderHint)({
57
+ identity_provider: String(body['identity_provider'] ?? body['provider'] ?? ''),
58
+ acr_values: String(body['acr_values'] ?? ''),
59
+ }) ?? '';
60
+ if (!clientId || !redirectUri || !provider) {
61
+ throw (0, oauth_error_util_1.oauthInvalidRequest)('client_id, redirect_uri, and identity_provider are required.');
62
+ }
63
+ return this.oauth.initAuthorization({
64
+ clientId,
65
+ redirectUri,
66
+ scope,
37
67
  provider,
38
68
  issuer: this.resolveIssuer(req),
39
- state: query['state']?.trim(),
40
69
  });
41
- res.redirect(redirectUrl);
70
+ }
71
+ async authorize(query, req, res) {
72
+ const provider = (0, oauth_provider_hint_util_1.resolveOAuthProviderHint)(query);
73
+ if (provider) {
74
+ this.cookies.applyCsrfCookie(res);
75
+ const redirectUrl = await this.oauth.beginAuthorization({
76
+ responseType: query['response_type']?.trim() || '',
77
+ clientId: query['client_id']?.trim() || '',
78
+ redirectUri: query['redirect_uri']?.trim() || '',
79
+ scope: query['scope']?.trim() || 'openid profile email offline_access',
80
+ codeChallenge: query['code_challenge']?.trim() || '',
81
+ codeChallengeMethod: query['code_challenge_method']?.trim() || '',
82
+ provider,
83
+ issuer: this.resolveIssuer(req),
84
+ state: query['state']?.trim(),
85
+ });
86
+ res.redirect(redirectUrl);
87
+ return;
88
+ }
89
+ if (this.oidcEngine.isEnabled()) {
90
+ await this.oidcEngine.forward(req, res);
91
+ return;
92
+ }
93
+ throw (0, oauth_error_util_1.oauthInvalidRequest)('identity_provider (or acr_values) is required.');
94
+ }
95
+ /**
96
+ * oidc-provider post-login resume (`GET /connect/authorize/:uid`).
97
+ * Must not require an identity_provider hint — this is the standard OP path.
98
+ */
99
+ async authorizeResume(req, res) {
100
+ if (!this.oidcEngine.isEnabled()) {
101
+ throw (0, oauth_error_util_1.oauthInvalidRequest)('oidc provider unavailable.');
102
+ }
103
+ await this.oidcEngine.forward(req, res);
104
+ }
105
+ /**
106
+ * oidc-provider login/consent UI and form posts (standard OP path only).
107
+ * Not used by first-party Pure BFF federation broker.
108
+ * Explicit segments avoid Nest 11 / Express 5 wildcard matching gaps.
109
+ */
110
+ async oidcInteraction(req, res) {
111
+ if (!this.oidcEngine.isEnabled()) {
112
+ throw (0, oauth_error_util_1.oauthInvalidRequest)('oidc provider unavailable.');
113
+ }
114
+ await this.oidcEngine.forward(req, res);
42
115
  }
43
116
  async externalCallback(providerKey, code, state, error, res) {
44
117
  const key = providerKey?.trim();
45
118
  if (!key) {
46
- throw new common_1.BadRequestException('providerKey is required.');
119
+ throw (0, oauth_error_util_1.oauthInvalidRequest)('providerKey is required.');
47
120
  }
48
121
  if (error) {
49
122
  res.status(400).send(`${key} authorization failed: ${error}`);
50
123
  return;
51
124
  }
52
125
  if (!code?.trim() || !state?.trim()) {
53
- throw new common_1.BadRequestException('code and state are required.');
126
+ throw (0, oauth_error_util_1.oauthInvalidRequest)('code and state are required.');
54
127
  }
55
128
  const redirectUrl = await this.oauth.completeExternalCallback(key, code.trim(), state.trim());
56
129
  res.redirect(redirectUrl);
57
130
  }
58
131
  async token(req, res) {
59
132
  const body = this.readFormBody(req);
60
- const meta = (0, request_meta_util_1.resolveAuthRequestMeta)(req);
61
- const result = await this.oauth.exchangeAuthorizationCode(body, meta);
62
- if (result.access_token && result.refresh_token) {
133
+ if (typeof req.headers.authorization === 'string') {
134
+ body['authorization'] = req.headers.authorization;
135
+ }
136
+ if (this.oauth.isBrokerTokenRequest(body)) {
137
+ const meta = (0, request_meta_util_1.resolveAuthRequestMeta)(req);
138
+ const result = await this.oauth.exchangeAuthorizationCode(body, meta);
63
139
  this.cookies.applyAuthCookies(res, {
64
- accessToken: result.access_token,
65
- refreshToken: result.refresh_token,
140
+ accessToken: result.accessToken,
141
+ refreshToken: result.refreshToken,
66
142
  accessMaxAgeMs: this.tokens.accessTokenMaxAgeMs(),
67
143
  refreshMaxAgeMs: this.tokens.refreshTokenMaxAgeMs(),
68
144
  });
145
+ this.cookies.applyCsrfCookie(res);
146
+ res.json(result.body);
147
+ return;
69
148
  }
70
- return result;
149
+ if (this.oidcEngine.isEnabled()) {
150
+ await this.oidcEngine.forward(req, res);
151
+ return;
152
+ }
153
+ throw (0, oauth_error_util_1.oauthUnsupportedGrantType)('Unsupported grant_type.');
154
+ }
155
+ async userInfo(req, res) {
156
+ const resolved = this.tokenResolver.resolveAccessToken(req.headers, req.cookies);
157
+ if (!resolved) {
158
+ if (this.oidcEngine.isEnabled()) {
159
+ await this.oidcEngine.forward(req, res);
160
+ return;
161
+ }
162
+ throw (0, oauth_error_util_1.oauthInvalidToken)('Bearer access token is required.');
163
+ }
164
+ try {
165
+ const payload = await this.auth.validateAccessToken(resolved.token, auth_config_1.PLATFORM_ACCESS_TOKEN_AUDIENCE);
166
+ const user = await this.credentials.findUserById(payload.sub);
167
+ res.json({
168
+ sub: payload.sub,
169
+ name: payload.username,
170
+ picture: user?.avatar ?? null,
171
+ email: typeof user?.email === 'string' ? user.email : undefined,
172
+ });
173
+ return;
174
+ }
175
+ catch {
176
+ if (this.oidcEngine.isEnabled()) {
177
+ await this.oidcEngine.forward(req, res);
178
+ return;
179
+ }
180
+ throw (0, oauth_error_util_1.oauthInvalidToken)('Invalid or expired access token.');
181
+ }
182
+ }
183
+ async revoke(req, res) {
184
+ const body = this.readFormBody(req);
185
+ const refreshToken = body['refresh_token'] ?? body['token'] ?? this.cookies.readRefreshToken(req.cookies);
186
+ if (refreshToken) {
187
+ try {
188
+ this.tokens.verifyRefreshToken(refreshToken);
189
+ await this.auth.logout(refreshToken);
190
+ this.cookies.clearAuthCookies(res);
191
+ res.json({ success: true });
192
+ return;
193
+ }
194
+ catch {
195
+ /* fall through to oidc-provider */
196
+ }
197
+ }
198
+ if (this.oidcEngine.isEnabled()) {
199
+ await this.oidcEngine.forward(req, res);
200
+ return;
201
+ }
202
+ res.json({ success: true });
71
203
  }
72
- /** Platform API issuer from the incoming request (no hardcoded host/port). */
204
+ async endSession(query, req, res) {
205
+ const refreshToken = this.cookies.readRefreshToken(req.cookies);
206
+ if (refreshToken) {
207
+ try {
208
+ this.tokens.verifyRefreshToken(refreshToken);
209
+ await this.auth.logout(refreshToken);
210
+ const redirectUrl = await this.oauth.endSession({
211
+ idTokenHint: query['id_token_hint'],
212
+ postLogoutRedirectUri: query['post_logout_redirect_uri'],
213
+ clientId: query['client_id'],
214
+ state: query['state'],
215
+ });
216
+ this.cookies.clearAuthCookies(res);
217
+ if (redirectUrl) {
218
+ res.redirect(redirectUrl);
219
+ return;
220
+ }
221
+ res.status(204).send();
222
+ return;
223
+ }
224
+ catch {
225
+ /* fall through */
226
+ }
227
+ }
228
+ if (this.oidcEngine.isEnabled()) {
229
+ await this.oidcEngine.forward(req, res);
230
+ return;
231
+ }
232
+ this.cookies.clearAuthCookies(res);
233
+ res.status(204).send();
234
+ }
235
+ /** Platform OAuth issuer — prefer `AUTH_OAUTH_ISSUER`, else derive from request. */
73
236
  resolveIssuer(req) {
74
- const forwardedProto = req.headers['x-forwarded-proto'];
75
- const protoHeader = Array.isArray(forwardedProto) ? forwardedProto[0] : forwardedProto;
76
- const proto = (protoHeader?.split(',')[0] || req.protocol || 'http').trim();
77
- const host = (req.get('host') || 'localhost:5500').trim();
78
- return `${proto}://${host}/api`;
237
+ return (0, oauth_issuer_util_1.resolveOAuthIssuer)(req);
79
238
  }
80
239
  readFormBody(req) {
81
240
  const body = req.body;
@@ -92,18 +251,36 @@ tslib_1.__decorate([
92
251
  tslib_1.__param(0, (0, common_1.Req)()),
93
252
  tslib_1.__metadata("design:type", Function),
94
253
  tslib_1.__metadata("design:paramtypes", [Object]),
95
- tslib_1.__metadata("design:returntype", void 0)
254
+ tslib_1.__metadata("design:returntype", Promise)
96
255
  ], ConnectController.prototype, "getDiscoveryDocument", null);
256
+ tslib_1.__decorate([
257
+ (0, common_1.Get)('.well-known/oauth-authorization-server'),
258
+ (0, swagger_1.ApiOperation)({ summary: 'OAuth 2.0 Authorization Server metadata (RFC 8414)' }),
259
+ tslib_1.__param(0, (0, common_1.Req)()),
260
+ tslib_1.__metadata("design:type", Function),
261
+ tslib_1.__metadata("design:paramtypes", [Object]),
262
+ tslib_1.__metadata("design:returntype", Promise)
263
+ ], ConnectController.prototype, "getOauthAuthorizationServerMetadata", null);
97
264
  tslib_1.__decorate([
98
265
  (0, common_1.Get)('.well-known/jwks.json'),
99
- (0, swagger_1.ApiOperation)({ summary: 'JSON Web Key Set (platform broker — HS256 tokens, empty for discovery clients)' }),
266
+ (0, swagger_1.ApiOperation)({ summary: 'JSON Web Key Set (platform broker signing keys for id_token)' }),
100
267
  tslib_1.__metadata("design:type", Function),
101
268
  tslib_1.__metadata("design:paramtypes", []),
102
269
  tslib_1.__metadata("design:returntype", void 0)
103
270
  ], ConnectController.prototype, "getJwksDocument", null);
271
+ tslib_1.__decorate([
272
+ (0, common_1.Post)('connect/authorize/init'),
273
+ (0, swagger_1.ApiOperation)({ summary: 'BFF: server-side PKCE + platform authorize URL' }),
274
+ tslib_1.__param(0, (0, common_1.Body)()),
275
+ tslib_1.__param(1, (0, common_1.Req)()),
276
+ tslib_1.__param(2, (0, common_1.Res)({ passthrough: true })),
277
+ tslib_1.__metadata("design:type", Function),
278
+ tslib_1.__metadata("design:paramtypes", [Object, Object, Object]),
279
+ tslib_1.__metadata("design:returntype", Promise)
280
+ ], ConnectController.prototype, "authorizeInit", null);
104
281
  tslib_1.__decorate([
105
282
  (0, common_1.Get)('connect/authorize'),
106
- (0, swagger_1.ApiOperation)({ summary: 'Begin external IdP authorization (IdentityProvider key via acr_values)' }),
283
+ (0, swagger_1.ApiOperation)({ summary: 'Authorization endpoint (federation broker or oidc-provider engine)' }),
107
284
  tslib_1.__param(0, (0, common_1.Query)()),
108
285
  tslib_1.__param(1, (0, common_1.Req)()),
109
286
  tslib_1.__param(2, (0, common_1.Res)()),
@@ -111,6 +288,24 @@ tslib_1.__decorate([
111
288
  tslib_1.__metadata("design:paramtypes", [Object, Object, Object]),
112
289
  tslib_1.__metadata("design:returntype", Promise)
113
290
  ], ConnectController.prototype, "authorize", null);
291
+ tslib_1.__decorate([
292
+ (0, common_1.All)('connect/authorize/:uid'),
293
+ (0, swagger_1.ApiOperation)({ summary: 'OpenID Provider authorize resume (oidc-provider engine)' }),
294
+ tslib_1.__param(0, (0, common_1.Req)()),
295
+ tslib_1.__param(1, (0, common_1.Res)()),
296
+ tslib_1.__metadata("design:type", Function),
297
+ tslib_1.__metadata("design:paramtypes", [Object, Object]),
298
+ tslib_1.__metadata("design:returntype", Promise)
299
+ ], ConnectController.prototype, "authorizeResume", null);
300
+ tslib_1.__decorate([
301
+ (0, common_1.All)(['interaction/:uid', 'interaction/:uid/:action']),
302
+ (0, swagger_1.ApiOperation)({ summary: 'OpenID Provider interaction (oidc-provider engine)' }),
303
+ tslib_1.__param(0, (0, common_1.Req)()),
304
+ tslib_1.__param(1, (0, common_1.Res)()),
305
+ tslib_1.__metadata("design:type", Function),
306
+ tslib_1.__metadata("design:paramtypes", [Object, Object]),
307
+ tslib_1.__metadata("design:returntype", Promise)
308
+ ], ConnectController.prototype, "oidcInteraction", null);
114
309
  tslib_1.__decorate([
115
310
  (0, common_1.Get)('connect/callback/:providerKey'),
116
311
  (0, swagger_1.ApiOperation)({ summary: 'External IdP OAuth callback for platform login' }),
@@ -127,18 +322,51 @@ tslib_1.__decorate([
127
322
  (0, common_1.Post)('connect/token'),
128
323
  (0, swagger_1.ApiOperation)({ summary: 'Exchange authorization code or refresh token for platform tokens' }),
129
324
  tslib_1.__param(0, (0, common_1.Req)()),
130
- tslib_1.__param(1, (0, common_1.Res)({ passthrough: true })),
325
+ tslib_1.__param(1, (0, common_1.Res)()),
131
326
  tslib_1.__metadata("design:type", Function),
132
327
  tslib_1.__metadata("design:paramtypes", [Object, Object]),
133
328
  tslib_1.__metadata("design:returntype", Promise)
134
329
  ], ConnectController.prototype, "token", null);
330
+ tslib_1.__decorate([
331
+ (0, common_1.Get)('connect/userinfo'),
332
+ (0, swagger_1.ApiOperation)({ summary: 'UserInfo endpoint for access tokens' }),
333
+ tslib_1.__param(0, (0, common_1.Req)()),
334
+ tslib_1.__param(1, (0, common_1.Res)()),
335
+ tslib_1.__metadata("design:type", Function),
336
+ tslib_1.__metadata("design:paramtypes", [Object, Object]),
337
+ tslib_1.__metadata("design:returntype", Promise)
338
+ ], ConnectController.prototype, "userInfo", null);
339
+ tslib_1.__decorate([
340
+ (0, common_1.Post)('connect/revocation'),
341
+ (0, swagger_1.ApiOperation)({ summary: 'Token revocation endpoint (refresh token revoke)' }),
342
+ tslib_1.__param(0, (0, common_1.Req)()),
343
+ tslib_1.__param(1, (0, common_1.Res)()),
344
+ tslib_1.__metadata("design:type", Function),
345
+ tslib_1.__metadata("design:paramtypes", [Object, Object]),
346
+ tslib_1.__metadata("design:returntype", Promise)
347
+ ], ConnectController.prototype, "revoke", null);
348
+ tslib_1.__decorate([
349
+ (0, common_1.Get)('connect/endsession'),
350
+ (0, swagger_1.ApiOperation)({ summary: 'RP-Initiated Logout (OpenID Connect)' }),
351
+ tslib_1.__param(0, (0, common_1.Query)()),
352
+ tslib_1.__param(1, (0, common_1.Req)()),
353
+ tslib_1.__param(2, (0, common_1.Res)()),
354
+ tslib_1.__metadata("design:type", Function),
355
+ tslib_1.__metadata("design:paramtypes", [Object, Object, Object]),
356
+ tslib_1.__metadata("design:returntype", Promise)
357
+ ], ConnectController.prototype, "endSession", null);
135
358
  exports.ConnectController = ConnectController = tslib_1.__decorate([
136
359
  (0, swagger_1.ApiTags)('connect'),
137
360
  (0, public_decorator_1.Public)(),
361
+ (0, common_1.UseFilters)(oauth_connect_exception_filter_1.OAuthConnectExceptionFilter),
138
362
  (0, common_1.Controller)(),
139
363
  tslib_1.__metadata("design:paramtypes", [platform_oauth_service_1.PlatformOAuthService,
364
+ oidc_provider_engine_service_1.OidcProviderEngineService,
365
+ auth_service_1.AuthService,
140
366
  auth_cookie_service_1.AuthCookieService,
141
- token_service_1.TokenService])
367
+ token_service_1.TokenService,
368
+ token_resolver_service_1.TokenResolverService,
369
+ auth_local_credentials_service_1.AuthLocalCredentialsService])
142
370
  ], ConnectController);
143
371
  //#endregion
144
372
  //# sourceMappingURL=connect.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connect.controller.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/oauth/connect.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connect.controller.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/oauth/connect.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { OAuthTokenResponse } from './platform-oauth.types';
2
+ export declare function isBffPureModeEnabled(): boolean;
3
+ export declare function buildOAuthTokenResponseBody(input: {
4
+ accessToken: string;
5
+ refreshToken: string;
6
+ idToken: string;
7
+ expiresIn: number;
8
+ }): OAuthTokenResponse;
9
+ //# sourceMappingURL=oauth-bff.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-bff.util.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/oauth/oauth-bff.util.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,wBAAgB,oBAAoB,IAAI,OAAO,CAM9C;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,kBAAkB,CAgBrB"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ //#region ---- Pure BFF OAuth token response helpers ----
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.isBffPureModeEnabled = isBffPureModeEnabled;
5
+ exports.buildOAuthTokenResponseBody = buildOAuthTokenResponseBody;
6
+ function isBffPureModeEnabled() {
7
+ const raw = process.env['AUTH_BFF_PURE']?.trim()?.toLowerCase();
8
+ if (raw === 'false' || raw === '0') {
9
+ return false;
10
+ }
11
+ return true;
12
+ }
13
+ function buildOAuthTokenResponseBody(input) {
14
+ if (isBffPureModeEnabled()) {
15
+ return {
16
+ token_type: 'Bearer',
17
+ expires_in: input.expiresIn,
18
+ id_token: input.idToken,
19
+ };
20
+ }
21
+ return {
22
+ access_token: input.accessToken,
23
+ refresh_token: input.refreshToken,
24
+ id_token: input.idToken,
25
+ token_type: 'Bearer',
26
+ expires_in: input.expiresIn,
27
+ };
28
+ }
29
+ //#endregion
30
+ //# sourceMappingURL=oauth-bff.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-bff.util.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/oauth/oauth-bff.util.ts"],"names":[],"mappings":";AAAA,yDAAyD;;AAIzD,oDAMC;AAED,kEAqBC;AA7BD,SAAgB,oBAAoB;IAClC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC;IAChE,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,2BAA2B,CAAC,KAK3C;IACC,IAAI,oBAAoB,EAAE,EAAE,CAAC;QAC3B,OAAO;YACL,UAAU,EAAE,QAAQ;YACpB,UAAU,EAAE,KAAK,CAAC,SAAS;YAC3B,QAAQ,EAAE,KAAK,CAAC,OAAO;SACxB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,YAAY,EAAE,KAAK,CAAC,WAAW;QAC/B,aAAa,EAAE,KAAK,CAAC,YAAY;QACjC,QAAQ,EAAE,KAAK,CAAC,OAAO;QACvB,UAAU,EAAE,QAAQ;QACpB,UAAU,EAAE,KAAK,CAAC,SAAS;KAC5B,CAAC;AACJ,CAAC;AAED,YAAY"}
@@ -0,0 +1,6 @@
1
+ /** OIDC reserved claims that must not be overridden by organization adapters. */
2
+ export declare const RESERVED_OIDC_CLAIMS: Set<string>;
3
+ /** RFC 9068 reserved access-token claims. */
4
+ export declare const RESERVED_ACCESS_TOKEN_CLAIMS: Set<string>;
5
+ export declare function assertAllowedClaimInputs(claims: Record<string, unknown>, allowed: Set<string>, context: string): void;
6
+ //# sourceMappingURL=oauth-claims.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-claims.util.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/oauth/oauth-claims.util.ts"],"names":[],"mappings":"AAEA,iFAAiF;AACjF,eAAO,MAAM,oBAAoB,aAa/B,CAAC;AAEH,6CAA6C;AAC7C,eAAO,MAAM,4BAA4B,aAKvC,CAAC;AAEH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,OAAO,EAAE,MAAM,GACd,IAAI,CAMN"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ //#region ---- OAuth token claims helpers ----
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.RESERVED_ACCESS_TOKEN_CLAIMS = exports.RESERVED_OIDC_CLAIMS = void 0;
5
+ exports.assertAllowedClaimInputs = assertAllowedClaimInputs;
6
+ /** OIDC reserved claims that must not be overridden by organization adapters. */
7
+ exports.RESERVED_OIDC_CLAIMS = new Set([
8
+ 'iss',
9
+ 'sub',
10
+ 'aud',
11
+ 'exp',
12
+ 'iat',
13
+ 'auth_time',
14
+ 'nonce',
15
+ 'acr',
16
+ 'amr',
17
+ 'azp',
18
+ 'at_hash',
19
+ 'c_hash',
20
+ ]);
21
+ /** RFC 9068 reserved access-token claims. */
22
+ exports.RESERVED_ACCESS_TOKEN_CLAIMS = new Set([
23
+ ...exports.RESERVED_OIDC_CLAIMS,
24
+ 'typ',
25
+ 'client_id',
26
+ 'scope',
27
+ ]);
28
+ function assertAllowedClaimInputs(claims, allowed, context) {
29
+ for (const key of Object.keys(claims)) {
30
+ if (!allowed.has(key)) {
31
+ throw new Error(`Claim "${key}" is not allowed (${context}).`);
32
+ }
33
+ }
34
+ }
35
+ //#endregion
36
+ //# sourceMappingURL=oauth-claims.util.js.map