@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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../libs/framework/server/security/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC;AACzD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,mDAAmD,CAAC;AAClE,cAAc,kDAAkD,CAAC;AACjE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,gDAAgD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../libs/framework/server/security/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAClD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC;AACzD,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,mDAAmD,CAAC;AAClE,cAAc,kDAAkD,CAAC;AACjE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,gDAAgD,CAAC"}
@@ -1,19 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OidcProviderEngineService = void 0;
3
4
  const tslib_1 = require("tslib");
4
5
  tslib_1.__exportStar(require("./lib/security.module"), exports);
6
+ tslib_1.__exportStar(require("./lib/auth/device-session.service"), exports);
5
7
  tslib_1.__exportStar(require("./lib/auth/auth.service"), exports);
6
8
  tslib_1.__exportStar(require("./lib/auth/token.service"), exports);
7
9
  tslib_1.__exportStar(require("./lib/auth/token-resolver.service"), exports);
8
10
  tslib_1.__exportStar(require("./lib/auth/auth-cookie.service"), exports);
9
11
  tslib_1.__exportStar(require("./lib/auth/login-attempt.service"), exports);
10
12
  tslib_1.__exportStar(require("./lib/auth/auth-lockout-policy"), exports);
13
+ tslib_1.__exportStar(require("./lib/auth/auth-max-device-sessions-policy"), exports);
11
14
  tslib_1.__exportStar(require("./lib/auth/auth.config"), exports);
12
15
  tslib_1.__exportStar(require("./lib/auth/machine-token.service"), exports);
13
16
  tslib_1.__exportStar(require("./lib/auth/auth.types"), exports);
14
17
  tslib_1.__exportStar(require("./lib/auth/auth.events"), exports);
15
18
  tslib_1.__exportStar(require("./lib/auth/auth-providers.contributor"), exports);
16
19
  tslib_1.__exportStar(require("./lib/auth/auth-identity-provider.source"), exports);
20
+ var oidc_provider_engine_service_1 = require("./lib/oauth/oidc-provider-engine.service");
21
+ Object.defineProperty(exports, "OidcProviderEngineService", { enumerable: true, get: function () { return oidc_provider_engine_service_1.OidcProviderEngineService; } });
17
22
  tslib_1.__exportStar(require("./lib/auth/public.decorator"), exports);
18
23
  tslib_1.__exportStar(require("./lib/auth/jwt-auth.guard"), exports);
19
24
  tslib_1.__exportStar(require("./lib/session/backend-session.service"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/framework/server/security/src/index.ts"],"names":[],"mappings":";;;AAAA,gEAAsC;AACtC,kEAAwC;AACxC,mEAAyC;AACzC,4EAAkD;AAClD,yEAA+C;AAC/C,2EAAiD;AACjD,yEAA+C;AAC/C,iEAAuC;AACvC,2EAAiD;AACjD,gEAAsC;AACtC,iEAAuC;AACvC,gFAAsD;AACtD,mFAAyD;AACzD,sEAA4C;AAC5C,oEAA0C;AAC1C,gFAAsD;AACtD,8EAAoD;AACpD,kFAAwD;AACxD,gFAAsD;AACtD,8EAAoD;AACpD,mFAAyD;AACzD,wFAA8D;AAC9D,4FAAkE;AAClE,2FAAiE;AACjE,yFAA+D;AAC/D,mFAAyD;AACzD,gFAAsD;AACtD,yFAA+D;AAC/D,yFAA+D"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/framework/server/security/src/index.ts"],"names":[],"mappings":";;;;AAAA,gEAAsC;AACtC,4EAAkD;AAClD,kEAAwC;AACxC,mEAAyC;AACzC,4EAAkD;AAClD,yEAA+C;AAC/C,2EAAiD;AACjD,yEAA+C;AAC/C,qFAA2D;AAC3D,iEAAuC;AACvC,2EAAiD;AACjD,gEAAsC;AACtC,iEAAuC;AACvC,gFAAsD;AACtD,mFAAyD;AAEzD,yFAAqF;AAA5E,yIAAA,yBAAyB,OAAA;AAClC,sEAA4C;AAC5C,oEAA0C;AAC1C,gFAAsD;AACtD,8EAAoD;AACpD,kFAAwD;AACxD,gFAAsD;AACtD,8EAAoD;AACpD,mFAAyD;AACzD,wFAA8D;AAC9D,4FAAkE;AAClE,2FAAiE;AACjE,yFAA+D;AAC/D,mFAAyD;AACzD,gFAAsD;AACtD,yFAA+D;AAC/D,yFAA+D"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth-cookie-response.util.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/auth/auth-cookie-response.util.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAM/C,uEAAuE;AACvE,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CAGzE;AAED,kEAAkE;AAClE,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,oBAAoB,GACzB,IAAI,CAYN;AAED,8DAA8D;AAC9D,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAOxF"}
1
+ {"version":3,"file":"auth-cookie-response.util.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/auth/auth-cookie-response.util.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAM/C,uEAAuE;AACvE,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CAGzE;AAED,kEAAkE;AAClE,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,oBAAoB,GACzB,IAAI,CAgBN;AAED,8DAA8D;AAC9D,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAOxF"}
@@ -17,11 +17,14 @@ function applyAuthTokenCookies(request, cookies, tokens, data) {
17
17
  if (!res) {
18
18
  return;
19
19
  }
20
+ // Remember-me: persistent refresh cookie. Unchecked → session cookie (no maxAge).
21
+ // Legacy responses omit `persist` → keep prior persistent default.
22
+ const persistRefresh = data.persist !== false;
20
23
  cookies.applyAuthCookies(res, {
21
24
  accessToken: data.accessToken,
22
25
  refreshToken: data.refreshToken,
23
26
  accessMaxAgeMs: tokens.accessTokenMaxAgeMs(),
24
- refreshMaxAgeMs: tokens.refreshTokenMaxAgeMs(),
27
+ ...(persistRefresh ? { refreshMaxAgeMs: tokens.refreshTokenMaxAgeMs() } : {}),
25
28
  });
26
29
  }
27
30
  /** Clears auth cookies on logout / failed session restore. */
@@ -1 +1 @@
1
- {"version":3,"file":"auth-cookie-response.util.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/auth/auth-cookie-response.util.ts"],"names":[],"mappings":";AAAA,6BAA6B;;AAY7B,0DAGC;AAGD,sDAiBC;AAGD,sDAOC;AAtCD,YAAY;AAEZ,kDAAkD;AAElD,uEAAuE;AACvE,SAAgB,uBAAuB,CAAC,OAAgB;IACtD,MAAM,GAAG,GAAI,OAAwC,CAAC,GAAG,CAAC;IAC1D,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC;AAED,kEAAkE;AAClE,SAAgB,qBAAqB,CACnC,OAAgB,EAChB,OAA0B,EAC1B,MAAoB,EACpB,IAA0B;IAE1B,MAAM,GAAG,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO;IACT,CAAC;IAED,OAAO,CAAC,gBAAgB,CAAC,GAAG,EAAE;QAC5B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,cAAc,EAAE,MAAM,CAAC,mBAAmB,EAAE;QAC5C,eAAe,EAAE,MAAM,CAAC,oBAAoB,EAAE;KAC/C,CAAC,CAAC;AACL,CAAC;AAED,8DAA8D;AAC9D,SAAgB,qBAAqB,CAAC,OAAgB,EAAE,OAA0B;IAChF,MAAM,GAAG,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO;IACT,CAAC;IAED,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAED,YAAY"}
1
+ {"version":3,"file":"auth-cookie-response.util.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/auth/auth-cookie-response.util.ts"],"names":[],"mappings":";AAAA,6BAA6B;;AAY7B,0DAGC;AAGD,sDAqBC;AAGD,sDAOC;AA1CD,YAAY;AAEZ,kDAAkD;AAElD,uEAAuE;AACvE,SAAgB,uBAAuB,CAAC,OAAgB;IACtD,MAAM,GAAG,GAAI,OAAwC,CAAC,GAAG,CAAC;IAC1D,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC;AAED,kEAAkE;AAClE,SAAgB,qBAAqB,CACnC,OAAgB,EAChB,OAA0B,EAC1B,MAAoB,EACpB,IAA0B;IAE1B,MAAM,GAAG,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO;IACT,CAAC;IAED,kFAAkF;IAClF,mEAAmE;IACnE,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC;IAE9C,OAAO,CAAC,gBAAgB,CAAC,GAAG,EAAE;QAC5B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,cAAc,EAAE,MAAM,CAAC,mBAAmB,EAAE;QAC5C,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9E,CAAC,CAAC;AACL,CAAC;AAED,8DAA8D;AAC9D,SAAgB,qBAAqB,CAAC,OAAgB,EAAE,OAA0B;IAChF,MAAM,GAAG,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO;IACT,CAAC;IAED,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAED,YAAY"}
@@ -9,6 +9,8 @@ export declare class AuthCookieService {
9
9
  clearAuthCookies(res: Response): void;
10
10
  readRefreshToken(cookies: Record<string, unknown> | undefined): string | null;
11
11
  readAccessTokenCookie(cookies: Record<string, unknown> | undefined): string | null;
12
+ applyCsrfCookie(res: Response): void;
13
+ readCsrfToken(cookies: Record<string, unknown> | undefined): string | null;
12
14
  private refreshCookieOptions;
13
15
  private accessCookieOptions;
14
16
  private baseCookieOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"auth-cookie.service.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/auth/auth-cookie.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,QAAQ,EAAE,MAAM,SAAS,CAAC;AAWvD,qBACa,iBAAiB;IAC5B,gBAAgB,CACd,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GACvG,IAAI;IAcP,gBAAgB,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI;IAYrC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI;IAQ7E,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI;IAQlF,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,iBAAiB;CAM1B"}
1
+ {"version":3,"file":"auth-cookie.service.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/auth/auth-cookie.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,QAAQ,EAAE,MAAM,SAAS,CAAC;AAavD,qBACa,iBAAiB;IAC5B,gBAAgB,CACd,GAAG,EAAE,QAAQ,EACb,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GACvG,IAAI;IAcP,gBAAgB,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI;IAYrC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI;IAQ7E,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI;IAQlF,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI;IAUpC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI;IAQ1E,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,iBAAiB;CAM1B"}
@@ -4,6 +4,7 @@ exports.AuthCookieService = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const common_1 = require("@nestjs/common");
6
6
  const auth_config_1 = require("./auth.config");
7
+ const crypto_1 = require("crypto");
7
8
  //#region ---- Auth cookie service ----
8
9
  let AuthCookieService = class AuthCookieService {
9
10
  applyAuthCookies(res, tokens) {
@@ -35,6 +36,22 @@ let AuthCookieService = class AuthCookieService {
35
36
  }
36
37
  return value.trim();
37
38
  }
39
+ applyCsrfCookie(res) {
40
+ const token = (0, crypto_1.randomBytes)(24).toString('hex');
41
+ res.cookie(auth_config_1.AUTH_COOKIE_CSRF_TOKEN, token, {
42
+ ...this.baseCookieOptions(),
43
+ httpOnly: false,
44
+ path: '/',
45
+ maxAge: 60 * 60 * 1000,
46
+ });
47
+ }
48
+ readCsrfToken(cookies) {
49
+ const value = cookies?.[auth_config_1.AUTH_COOKIE_CSRF_TOKEN];
50
+ if (typeof value !== 'string' || !value.trim()) {
51
+ return null;
52
+ }
53
+ return value.trim();
54
+ }
38
55
  refreshCookieOptions(maxAgeMs) {
39
56
  return {
40
57
  ...this.baseCookieOptions(),
@@ -1 +1 @@
1
- {"version":3,"file":"auth-cookie.service.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/auth/auth-cookie.service.ts"],"names":[],"mappings":";;;;AAAA,2CAA4C;AAE5C,+CAMuB;AAEvB,uCAAuC;AAGhC,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC5B,gBAAgB,CACd,GAAa,EACb,MAAwG;QAExG,GAAG,CAAC,MAAM,CACR,uCAAyB,EACzB,MAAM,CAAC,YAAY,EACnB,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,eAAe,CAAC,CAClD,CAAC;QAEF,GAAG,CAAC,MAAM,CACR,sCAAwB,EACxB,MAAM,CAAC,WAAW,EAClB,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAClE,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,GAAa;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACtC,GAAG,CAAC,WAAW,CAAC,uCAAyB,EAAE;YACzC,GAAG,IAAI;YACP,IAAI,EAAE,IAAA,sCAAwB,GAAE;SACjC,CAAC,CAAC;QACH,GAAG,CAAC,WAAW,CAAC,sCAAwB,EAAE;YACxC,GAAG,IAAI;YACP,IAAI,EAAE,GAAG;SACV,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,OAA4C;QAC3D,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC,uCAAyB,CAAC,CAAC;QACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,qBAAqB,CAAC,OAA4C;QAChE,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC,sCAAwB,CAAC,CAAC;QAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAEO,oBAAoB,CAAC,QAAiB;QAC5C,OAAO;YACL,GAAG,IAAI,CAAC,iBAAiB,EAAE;YAC3B,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,IAAA,sCAAwB,GAAE;YAChC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1C,CAAC;IACJ,CAAC;IAEO,mBAAmB,CAAC,QAAgB;QAC1C,OAAO;YACL,GAAG,IAAI,CAAC,iBAAiB,EAAE;YAC3B,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,QAAQ;SACjB,CAAC;IACJ,CAAC;IAEO,iBAAiB;QACvB,OAAO;YACL,MAAM,EAAE,IAAA,gCAAkB,GAAE;YAC5B,QAAQ,EAAE,IAAA,mCAAqB,GAAE;SAClC,CAAC;IACJ,CAAC;CACF,CAAA;AAtEY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;GACA,iBAAiB,CAsE7B;AAED,YAAY"}
1
+ {"version":3,"file":"auth-cookie.service.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/auth/auth-cookie.service.ts"],"names":[],"mappings":";;;;AAAA,2CAA4C;AAE5C,+CAOuB;AACvB,mCAAqC;AAErC,uCAAuC;AAGhC,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC5B,gBAAgB,CACd,GAAa,EACb,MAAwG;QAExG,GAAG,CAAC,MAAM,CACR,uCAAyB,EACzB,MAAM,CAAC,YAAY,EACnB,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,eAAe,CAAC,CAClD,CAAC;QAEF,GAAG,CAAC,MAAM,CACR,sCAAwB,EACxB,MAAM,CAAC,WAAW,EAClB,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAClE,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,GAAa;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACtC,GAAG,CAAC,WAAW,CAAC,uCAAyB,EAAE;YACzC,GAAG,IAAI;YACP,IAAI,EAAE,IAAA,sCAAwB,GAAE;SACjC,CAAC,CAAC;QACH,GAAG,CAAC,WAAW,CAAC,sCAAwB,EAAE;YACxC,GAAG,IAAI;YACP,IAAI,EAAE,GAAG;SACV,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,OAA4C;QAC3D,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC,uCAAyB,CAAC,CAAC;QACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,qBAAqB,CAAC,OAA4C;QAChE,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC,sCAAwB,CAAC,CAAC;QAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,eAAe,CAAC,GAAa;QAC3B,MAAM,KAAK,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9C,GAAG,CAAC,MAAM,CAAC,oCAAsB,EAAE,KAAK,EAAE;YACxC,GAAG,IAAI,CAAC,iBAAiB,EAAE;YAC3B,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;SACvB,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,OAA4C;QACxD,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC,oCAAsB,CAAC,CAAC;QAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IAEO,oBAAoB,CAAC,QAAiB;QAC5C,OAAO;YACL,GAAG,IAAI,CAAC,iBAAiB,EAAE;YAC3B,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,IAAA,sCAAwB,GAAE;YAChC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1C,CAAC;IACJ,CAAC;IAEO,mBAAmB,CAAC,QAAgB;QAC1C,OAAO;YACL,GAAG,IAAI,CAAC,iBAAiB,EAAE;YAC3B,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,QAAQ;SACjB,CAAC;IACJ,CAAC;IAEO,iBAAiB;QACvB,OAAO;YACL,MAAM,EAAE,IAAA,gCAAkB,GAAE;YAC5B,QAAQ,EAAE,IAAA,mCAAqB,GAAE;SAClC,CAAC;IACJ,CAAC;CACF,CAAA;AAxFY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;GACA,iBAAiB,CAwF7B;AAED,YAAY"}
@@ -0,0 +1,14 @@
1
+ import { NestMiddleware } from '@nestjs/common';
2
+ import type { NextFunction, Request, Response } from 'express';
3
+ type RequestWithBody = Request & {
4
+ body?: Record<string, unknown>;
5
+ };
6
+ /**
7
+ * CSRF for cookie-authenticated `/connect/token` and `/connect/revocation`.
8
+ * Writes RFC 6749-shaped JSON directly so middleware failures are not Nest `{ statusCode, message }`.
9
+ */
10
+ export declare class AuthCsrfMiddleware implements NestMiddleware {
11
+ use(req: RequestWithBody, res: Response, next: NextFunction): void;
12
+ }
13
+ export {};
14
+ //# sourceMappingURL=auth-csrf.middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-csrf.middleware.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/auth/auth-csrf.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAK/D,KAAK,eAAe,GAAG,OAAO,GAAG;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,CAAC;AAEF;;;GAGG;AACH,qBACa,kBAAmB,YAAW,cAAc;IACvD,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI;CAoDnE"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AuthCsrfMiddleware = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const auth_config_1 = require("./auth.config");
7
+ /**
8
+ * CSRF for cookie-authenticated `/connect/token` and `/connect/revocation`.
9
+ * Writes RFC 6749-shaped JSON directly so middleware failures are not Nest `{ statusCode, message }`.
10
+ */
11
+ let AuthCsrfMiddleware = class AuthCsrfMiddleware {
12
+ use(req, res, next) {
13
+ if (req.method !== 'POST') {
14
+ next();
15
+ return;
16
+ }
17
+ const path = String(req.originalUrl ?? req.url ?? '').split('?')[0] ?? '';
18
+ const isConnectToken = path.endsWith('/connect/token');
19
+ const isConnectRevocation = path.endsWith('/connect/revocation');
20
+ if (!isConnectToken && !isConnectRevocation) {
21
+ next();
22
+ return;
23
+ }
24
+ const cookies = (req.cookies ?? {});
25
+ const hasAuthCookies = typeof cookies[auth_config_1.AUTH_COOKIE_ACCESS_TOKEN] === 'string' ||
26
+ typeof cookies[auth_config_1.AUTH_COOKIE_REFRESH_TOKEN] === 'string';
27
+ const body = req.body && typeof req.body === 'object' ? req.body : {};
28
+ const grantType = typeof body['grant_type'] === 'string' ? body['grant_type'].trim() : '';
29
+ // First-party authorization_code exchange (no session cookies yet) is exempt.
30
+ if (isConnectToken && grantType === 'authorization_code' && !hasAuthCookies) {
31
+ next();
32
+ return;
33
+ }
34
+ if (!hasAuthCookies && isConnectRevocation && !body['refresh_token'] && !body['token']) {
35
+ next();
36
+ return;
37
+ }
38
+ const cookieToken = typeof cookies[auth_config_1.AUTH_COOKIE_CSRF_TOKEN] === 'string' ? cookies[auth_config_1.AUTH_COOKIE_CSRF_TOKEN].trim() : '';
39
+ const headerTokenRaw = req.headers['x-csrf-token'];
40
+ const headerToken = Array.isArray(headerTokenRaw)
41
+ ? headerTokenRaw[0]?.trim()
42
+ : typeof headerTokenRaw === 'string'
43
+ ? headerTokenRaw.trim()
44
+ : '';
45
+ if (!cookieToken || !headerToken || cookieToken !== headerToken) {
46
+ res.status(403).json({
47
+ error: 'access_denied',
48
+ error_description: 'CSRF token is missing or invalid.',
49
+ });
50
+ return;
51
+ }
52
+ next();
53
+ }
54
+ };
55
+ exports.AuthCsrfMiddleware = AuthCsrfMiddleware;
56
+ exports.AuthCsrfMiddleware = AuthCsrfMiddleware = tslib_1.__decorate([
57
+ (0, common_1.Injectable)()
58
+ ], AuthCsrfMiddleware);
59
+ //#endregion
60
+ //# sourceMappingURL=auth-csrf.middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-csrf.middleware.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/auth/auth-csrf.middleware.ts"],"names":[],"mappings":";;;;AAAA,2CAA4D;AAE5D,+CAA4G;AAQ5G;;;GAGG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,GAAG,CAAC,GAAoB,EAAE,GAAa,EAAE,IAAkB;QACzD,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC1B,IAAI,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1E,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QACvD,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC5C,IAAI,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAA4B,CAAC;QAC/D,MAAM,cAAc,GAClB,OAAO,OAAO,CAAC,sCAAwB,CAAC,KAAK,QAAQ;YACrD,OAAO,OAAO,CAAC,uCAAyB,CAAC,KAAK,QAAQ,CAAC;QAEzD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAE1F,8EAA8E;QAC9E,IAAI,cAAc,IAAI,SAAS,KAAK,oBAAoB,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5E,IAAI,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QAED,IAAI,CAAC,cAAc,IAAI,mBAAmB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACvF,IAAI,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GACf,OAAO,OAAO,CAAC,oCAAsB,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,oCAAsB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpG,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;YAC/C,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;YAC3B,CAAC,CAAC,OAAO,cAAc,KAAK,QAAQ;gBAClC,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE;gBACvB,CAAC,CAAC,EAAE,CAAC;QAET,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;YAChE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,KAAK,EAAE,eAAe;gBACtB,iBAAiB,EAAE,mCAAmC;aACvD,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,EAAE,CAAC;IACT,CAAC;CACF,CAAA;AArDY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;GACA,kBAAkB,CAqD9B;AAED,YAAY"}
@@ -43,6 +43,12 @@ export interface AuthIdentityProviderBrokerConfig {
43
43
  tokenUrl: string;
44
44
  /** Optional userinfo endpoint. */
45
45
  userInfoUrl?: string;
46
+ /**
47
+ * Expected ID Token `iss` (OIDC issuer).
48
+ * Prefer this over deriving issuer from `tokenUrl` — Google's token host
49
+ * (`oauth2.googleapis.com`) is not the ID Token issuer (`accounts.google.com`).
50
+ */
51
+ issuerUrl?: string;
46
52
  /** Scopes sent to the external IdP. */
47
53
  scopes: string;
48
54
  }
@@ -68,4 +74,9 @@ export declare const AUTH_IDENTITY_PROVIDER_CATALOG: unique symbol;
68
74
  * Provided by security-management from seed constants (not env in framework).
69
75
  */
70
76
  export declare const AUTH_OAUTH_ALLOWED_CLIENT_IDS: unique symbol;
77
+ /**
78
+ * Registered OAuth/OIDC clients (redirect URIs, scopes, grant types).
79
+ * Provided by security-management from seed constants (not env in framework).
80
+ */
81
+ export declare const AUTH_OAUTH_REGISTERED_CLIENTS: unique symbol;
71
82
  //# sourceMappingURL=auth-identity-provider.source.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-identity-provider.source.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/auth/auth-identity-provider.source.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAC;IACxC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qFAAqF;AACrF,MAAM,WAAW,4BAA4B;IAC3C,YAAY,EAAE,wBAAwB,EAAE,CAAC;IACzC,iBAAiB,EAAE,6BAA6B,EAAE,CAAC;CACpD;AAED,MAAM,WAAW,mCAAmC;IAClD,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iFAAiF;AACjF,MAAM,WAAW,gCAAgC;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,gBAAgB,EAAE,MAAM,CAAC;IACzB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,mBAAmB,IAAI,OAAO,CAAC,6BAA6B,EAAE,CAAC,CAAC;IAChE;;;OAGG;IACH,UAAU,CAAC,KAAK,EAAE,mCAAmC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE;;;OAGG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gCAAgC,GAAG,IAAI,CAAC,CAAC;CAChF;AAED,eAAO,MAAM,8BAA8B,eAA2C,CAAC;AAEvF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,eAA0C,CAAC"}
1
+ {"version":3,"file":"auth-identity-provider.source.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/auth/auth-identity-provider.source.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAC;IACxC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qFAAqF;AACrF,MAAM,WAAW,4BAA4B;IAC3C,YAAY,EAAE,wBAAwB,EAAE,CAAC;IACzC,iBAAiB,EAAE,6BAA6B,EAAE,CAAC;CACpD;AAED,MAAM,WAAW,mCAAmC;IAClD,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iFAAiF;AACjF,MAAM,WAAW,gCAAgC;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,gBAAgB,EAAE,MAAM,CAAC;IACzB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,mBAAmB,IAAI,OAAO,CAAC,6BAA6B,EAAE,CAAC,CAAC;IAChE;;;OAGG;IACH,UAAU,CAAC,KAAK,EAAE,mCAAmC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE;;;OAGG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gCAAgC,GAAG,IAAI,CAAC,CAAC;CAChF;AAED,eAAO,MAAM,8BAA8B,eAA2C,CAAC;AAEvF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,eAA0C,CAAC;AAErF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,eAA0C,CAAC"}
@@ -1,12 +1,17 @@
1
1
  "use strict";
2
2
  //#region ---- Auth identity provider catalog (entity-backed) ----
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.AUTH_OAUTH_ALLOWED_CLIENT_IDS = exports.AUTH_IDENTITY_PROVIDER_CATALOG = void 0;
4
+ exports.AUTH_OAUTH_REGISTERED_CLIENTS = exports.AUTH_OAUTH_ALLOWED_CLIENT_IDS = exports.AUTH_IDENTITY_PROVIDER_CATALOG = void 0;
5
5
  exports.AUTH_IDENTITY_PROVIDER_CATALOG = Symbol('AUTH_IDENTITY_PROVIDER_CATALOG');
6
6
  /**
7
7
  * Allowed SPA/machine client_ids for `/connect/*`.
8
8
  * Provided by security-management from seed constants (not env in framework).
9
9
  */
10
10
  exports.AUTH_OAUTH_ALLOWED_CLIENT_IDS = Symbol('AUTH_OAUTH_ALLOWED_CLIENT_IDS');
11
+ /**
12
+ * Registered OAuth/OIDC clients (redirect URIs, scopes, grant types).
13
+ * Provided by security-management from seed constants (not env in framework).
14
+ */
15
+ exports.AUTH_OAUTH_REGISTERED_CLIENTS = Symbol('AUTH_OAUTH_REGISTERED_CLIENTS');
11
16
  //#endregion
12
17
  //# sourceMappingURL=auth-identity-provider.source.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-identity-provider.source.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/auth/auth-identity-provider.source.ts"],"names":[],"mappings":";AAAA,kEAAkE;;;AAwErD,QAAA,8BAA8B,GAAG,MAAM,CAAC,gCAAgC,CAAC,CAAC;AAEvF;;;GAGG;AACU,QAAA,6BAA6B,GAAG,MAAM,CAAC,+BAA+B,CAAC,CAAC;AAErF,YAAY"}
1
+ {"version":3,"file":"auth-identity-provider.source.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/auth/auth-identity-provider.source.ts"],"names":[],"mappings":";AAAA,kEAAkE;;;AA8ErD,QAAA,8BAA8B,GAAG,MAAM,CAAC,gCAAgC,CAAC,CAAC;AAEvF;;;GAGG;AACU,QAAA,6BAA6B,GAAG,MAAM,CAAC,+BAA+B,CAAC,CAAC;AAErF;;;GAGG;AACU,QAAA,6BAA6B,GAAG,MAAM,CAAC,+BAA+B,CAAC,CAAC;AAErF,YAAY"}
@@ -6,17 +6,25 @@ export declare class AuthLocalCredentialsService {
6
6
  constructor(entityStorage: EntityStorageMiddlewareService);
7
7
  validate(username: string, password: string): Promise<SecurityManagementUserRecord>;
8
8
  findUserByUsername(username: string): Promise<SecurityManagementUserRecord | null>;
9
+ /**
10
+ * OD-06 trusted email link: match by `email` field, then by username === email
11
+ * (legacy rows where username was the mailbox address).
12
+ */
13
+ findUserByVerifiedEmail(email: string): Promise<SecurityManagementUserRecord | null>;
9
14
  findUserById(userId: string): Promise<SecurityManagementUserRecord | null>;
10
15
  listUsers(): Promise<SecurityManagementUserRecord[]>;
11
16
  blockUserAccess(userId: string): Promise<void>;
12
17
  restoreUserAccess(userId: string): Promise<void>;
13
18
  findOrCreateExternalUser(input: {
14
19
  provider: string;
20
+ issuer: string;
15
21
  providerSubject: string;
16
22
  email?: string;
23
+ emailVerified?: boolean;
17
24
  displayName?: string;
18
25
  picture?: string;
19
26
  }): Promise<SecurityManagementUserRecord>;
27
+ private auditExternalIdentityLink;
20
28
  private invalidCredentialsBody;
21
29
  }
22
30
  //# sourceMappingURL=auth-local-credentials.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-local-credentials.service.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/auth/auth-local-credentials.service.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AAKxF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AASjE,qBACa,2BAA2B;IAG1B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAF1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgD;gBAE1C,aAAa,EAAE,8BAA8B;IAEpE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAkCnF,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC;IAKlF,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC;IAM1E,SAAS,IAAI,OAAO,CAAC,4BAA4B,EAAE,CAAC;IASpD,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU9C,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUhD,wBAAwB,CAAC,KAAK,EAAE;QACpC,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,EAAE,MAAM,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAyCzC,OAAO,CAAC,sBAAsB;CAO/B"}
1
+ {"version":3,"file":"auth-local-credentials.service.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/auth/auth-local-credentials.service.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AAKxF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AASjE,qBACa,2BAA2B;IAG1B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAF1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgD;gBAE1C,aAAa,EAAE,8BAA8B;IAEpE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAkCnF,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC;IAQxF;;;OAGG;IACG,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC;IAUpF,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC;IAM1E,SAAS,IAAI,OAAO,CAAC,4BAA4B,EAAE,CAAC;IASpD,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU9C,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUhD,wBAAwB,CAAC,KAAK,EAAE;QACpC,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,MAAM,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAsDzC,OAAO,CAAC,yBAAyB;IAkBjC,OAAO,CAAC,sBAAsB;CAO/B"}
@@ -49,7 +49,19 @@ let AuthLocalCredentialsService = AuthLocalCredentialsService_1 = class AuthLoca
49
49
  }
50
50
  async findUserByUsername(username) {
51
51
  const users = await this.listUsers();
52
- return users.find((u) => u.username === username) ?? null;
52
+ const normalized = username.trim().toLowerCase();
53
+ return (users.find((u) => (u.username ?? '').trim().toLowerCase() === normalized) ?? null);
54
+ }
55
+ /**
56
+ * OD-06 trusted email link: match by `email` field, then by username === email
57
+ * (legacy rows where username was the mailbox address).
58
+ */
59
+ async findUserByVerifiedEmail(email) {
60
+ const users = await this.listUsers();
61
+ const normalized = email.trim().toLowerCase();
62
+ return (users.find((u) => (u.email ?? '').trim().toLowerCase() === normalized) ??
63
+ users.find((u) => (u.username ?? '').trim().toLowerCase() === normalized) ??
64
+ null);
53
65
  }
54
66
  async findUserById(userId) {
55
67
  // Auth paths resolve global identities outside tenant membership filters.
@@ -83,37 +95,50 @@ let AuthLocalCredentialsService = AuthLocalCredentialsService_1 = class AuthLoca
83
95
  }
84
96
  async findOrCreateExternalUser(input) {
85
97
  const email = input.email?.trim().toLowerCase();
86
- const candidates = new Set();
87
- if (email) {
88
- candidates.add(email);
89
- const localPart = email.split('@')[0]?.trim();
90
- if (localPart) {
91
- candidates.add(localPart);
92
- }
98
+ const externalUsername = `${input.issuer}:${input.providerSubject}`;
99
+ const byExternal = await this.findUserByUsername(externalUsername);
100
+ const byEmail = email && input.emailVerified === true ? await this.findUserByVerifiedEmail(email) : null;
101
+ if (byExternal && byEmail && byExternal.id !== byEmail.id) {
102
+ this.logger.warn(`External identity conflict for provider=${input.provider}: ` +
103
+ `issuer+subject user=${byExternal.id} email user=${byEmail.id}`);
104
+ throw new common_1.UnauthorizedException({
105
+ statusCode: 401,
106
+ message: 'External identity is already linked to a different account.',
107
+ error: 'ExternalIdentityConflict',
108
+ });
109
+ }
110
+ if (byExternal) {
111
+ this.auditExternalIdentityLink('resolve-by-issuer-subject', input, byExternal.id);
112
+ return byExternal;
93
113
  }
94
- candidates.add(`${input.provider}:${input.providerSubject}`);
95
- for (const username of candidates) {
96
- const existing = await this.findUserByUsername(username);
97
- if (existing) {
98
- return existing;
99
- }
114
+ if (byEmail) {
115
+ this.auditExternalIdentityLink('trusted-email-link', input, byEmail.id);
116
+ return byEmail;
100
117
  }
101
- const username = email || `${input.provider}.${input.providerSubject.slice(0, 24)}`;
118
+ const username = email && input.emailVerified === true ? email : externalUsername;
102
119
  const displayName = input.displayName?.trim() || username;
103
120
  const id = (0, crypto_1.randomUUID)();
104
- await this.entityStorage.insertOne(USER_ENTITY, {
121
+ await this.entityStorage.insertOneAsEngine(USER_ENTITY, {
105
122
  id,
106
123
  username,
107
124
  displayName,
108
125
  accountState: ACTIVE_ACCOUNT_STATE,
109
126
  accessState: ALLOWED_ACCESS_STATE,
127
+ email: email && input.emailVerified === true ? email : undefined,
128
+ avatar: input.picture ?? null,
110
129
  });
111
130
  const created = await this.findUserById(id);
112
131
  if (!created) {
113
132
  throw new common_1.UnauthorizedException('Failed to create external user account.');
114
133
  }
134
+ this.auditExternalIdentityLink('create', input, created.id);
115
135
  return created;
116
136
  }
137
+ auditExternalIdentityLink(action, input, userId) {
138
+ this.logger.log(`External identity ${action}: provider=${input.provider} issuer=${input.issuer} ` +
139
+ `sub=${input.providerSubject} userId=${userId} ` +
140
+ `emailVerified=${input.emailVerified === true}`);
141
+ }
117
142
  invalidCredentialsBody() {
118
143
  return {
119
144
  statusCode: 401,
@@ -1 +1 @@
1
- {"version":3,"file":"auth-local-credentials.service.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/auth/auth-local-credentials.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-local-credentials.service.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/auth/auth-local-credentials.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Tenant max concurrent device sessions. Defaults to 0 (unlimited) until a module
3
+ * registers {@link configureAuthMaxDeviceSessionsPolicyResolver} (tenant settings).
4
+ *
5
+ * Uses globalThis so Nest/webpack duplicate module instances share one resolver.
6
+ */
7
+ export declare const AUTH_MAX_ACTIVE_DEVICE_SESSIONS_DEFAULT = 0;
8
+ type AuthMaxDeviceSessionsPolicyResolver = (tenantId: string) => Promise<number>;
9
+ /** Registers the resolver that reads tenant max-active-device-sessions settings. */
10
+ export declare function configureAuthMaxDeviceSessionsPolicyResolver(resolver: AuthMaxDeviceSessionsPolicyResolver): void;
11
+ /** Resolves the max active device sessions for a tenant. `0` = unlimited. */
12
+ export declare function resolveAuthMaxDeviceSessions(tenantId: string): Promise<number>;
13
+ export {};
14
+ //# sourceMappingURL=auth-max-device-sessions-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-max-device-sessions-policy.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/auth/auth-max-device-sessions-policy.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,eAAO,MAAM,uCAAuC,IAAI,CAAC;AAEzD,KAAK,mCAAmC,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAuBjF,oFAAoF;AACpF,wBAAgB,4CAA4C,CAC1D,QAAQ,EAAE,mCAAmC,GAC5C,IAAI,CAEN;AAED,6EAA6E;AAC7E,wBAAsB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgBpF"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ //#region ----- Auth max active device sessions policy (leaf) -----
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.AUTH_MAX_ACTIVE_DEVICE_SESSIONS_DEFAULT = void 0;
5
+ exports.configureAuthMaxDeviceSessionsPolicyResolver = configureAuthMaxDeviceSessionsPolicyResolver;
6
+ exports.resolveAuthMaxDeviceSessions = resolveAuthMaxDeviceSessions;
7
+ /**
8
+ * Tenant max concurrent device sessions. Defaults to 0 (unlimited) until a module
9
+ * registers {@link configureAuthMaxDeviceSessionsPolicyResolver} (tenant settings).
10
+ *
11
+ * Uses globalThis so Nest/webpack duplicate module instances share one resolver.
12
+ */
13
+ exports.AUTH_MAX_ACTIVE_DEVICE_SESSIONS_DEFAULT = 0;
14
+ const GLOBAL_KEY = '__AXP_AUTH_MAX_DEVICE_SESSIONS_POLICY__';
15
+ function authMaxDeviceSessionsState() {
16
+ const g = globalThis;
17
+ if (!g[GLOBAL_KEY]) {
18
+ g[GLOBAL_KEY] = { resolver: null };
19
+ }
20
+ return g[GLOBAL_KEY];
21
+ }
22
+ function coerceNonNegativeInt(value, fallback) {
23
+ const parsed = typeof value === 'number' ? value : Number(value);
24
+ return Number.isFinite(parsed) && parsed >= 0 ? Math.floor(parsed) : fallback;
25
+ }
26
+ /** Registers the resolver that reads tenant max-active-device-sessions settings. */
27
+ function configureAuthMaxDeviceSessionsPolicyResolver(resolver) {
28
+ authMaxDeviceSessionsState().resolver = resolver;
29
+ }
30
+ /** Resolves the max active device sessions for a tenant. `0` = unlimited. */
31
+ async function resolveAuthMaxDeviceSessions(tenantId) {
32
+ const tid = tenantId?.trim();
33
+ if (!tid) {
34
+ return exports.AUTH_MAX_ACTIVE_DEVICE_SESSIONS_DEFAULT;
35
+ }
36
+ const resolver = authMaxDeviceSessionsState().resolver;
37
+ if (!resolver) {
38
+ return exports.AUTH_MAX_ACTIVE_DEVICE_SESSIONS_DEFAULT;
39
+ }
40
+ try {
41
+ return coerceNonNegativeInt(await resolver(tid), exports.AUTH_MAX_ACTIVE_DEVICE_SESSIONS_DEFAULT);
42
+ }
43
+ catch {
44
+ return exports.AUTH_MAX_ACTIVE_DEVICE_SESSIONS_DEFAULT;
45
+ }
46
+ }
47
+ //#endregion
48
+ //# sourceMappingURL=auth-max-device-sessions-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-max-device-sessions-policy.js","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/auth/auth-max-device-sessions-policy.ts"],"names":[],"mappings":";AAAA,mEAAmE;;;AAmCnE,oGAIC;AAGD,oEAgBC;AAxDD;;;;;GAKG;AAEU,QAAA,uCAAuC,GAAG,CAAC,CAAC;AAQzD,MAAM,UAAU,GAAG,yCAAyC,CAAC;AAE7D,SAAS,0BAA0B;IACjC,MAAM,CAAC,GAAG,UAET,CAAC;IACF,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;QACnB,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACrC,CAAC;IACD,OAAO,CAAC,CAAC,UAAU,CAAE,CAAC;AACxB,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc,EAAE,QAAgB;IAC5D,MAAM,MAAM,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjE,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAChF,CAAC;AAED,oFAAoF;AACpF,SAAgB,4CAA4C,CAC1D,QAA6C;IAE7C,0BAA0B,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACnD,CAAC;AAED,6EAA6E;AACtE,KAAK,UAAU,4BAA4B,CAAC,QAAgB;IACjE,MAAM,GAAG,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,+CAAuC,CAAC;IACjD,CAAC;IAED,MAAM,QAAQ,GAAG,0BAA0B,EAAE,CAAC,QAAQ,CAAC;IACvD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,+CAAuC,CAAC;IACjD,CAAC;IAED,IAAI,CAAC;QACH,OAAO,oBAAoB,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,EAAE,+CAAuC,CAAC,CAAC;IAC5F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,+CAAuC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,YAAY"}
@@ -3,7 +3,7 @@ import { type AXPServerQueryHandler } from '@acorex-platform/framework-server/do
3
3
  import { ModuleRef } from '@nestjs/core';
4
4
  import { AuthCookieService } from './auth-cookie.service';
5
5
  import { AuthService } from './auth.service';
6
- import type { AuthTokenResponseDto, RefreshTokenRequestDto, RegisterRequestDto, SignInRequestDto, UpdateSessionRequestDto } from './auth.types';
6
+ import type { AuthListOwnDeviceSessionsRequestDto, AuthOwnDeviceSessionDto, AuthTerminateOwnDeviceSessionRequestDto, AuthTokenResponseDto, RefreshTokenRequestDto, RegisterRequestDto, SignInRequestDto, UpdateSessionRequestDto } from './auth.types';
7
7
  import { LoginAttemptService } from './login-attempt.service';
8
8
  import { TokenResolverService } from './token-resolver.service';
9
9
  import { TokenService } from './token.service';
@@ -47,7 +47,13 @@ export declare class AuthUpdateSessionRuntimeCommand implements AXPCommand<Updat
47
47
  constructor(auth: AuthService, tokenResolver: TokenResolverService, cookies: AuthCookieService, tokens: TokenService);
48
48
  execute(input: UpdateSessionRequestDto): AXPCommandExecuteResultPromise<AuthTokenResponseDto>;
49
49
  }
50
- export declare const AUTH_RUNTIME_COMMANDS: (typeof AuthSignInRuntimeCommand | typeof AuthRegisterRuntimeCommand | typeof AuthRefreshRuntimeCommand | typeof AuthLogoutRuntimeCommand | typeof AuthUpdateSessionRuntimeCommand)[];
50
+ export declare class AuthTerminateOwnDeviceSessionRuntimeCommand implements AXPCommand<AuthTerminateOwnDeviceSessionRequestDto, void> {
51
+ private readonly auth;
52
+ private readonly tokenResolver;
53
+ constructor(auth: AuthService, tokenResolver: TokenResolverService);
54
+ execute(input: AuthTerminateOwnDeviceSessionRequestDto): AXPCommandExecuteResultPromise<void>;
55
+ }
56
+ export declare const AUTH_RUNTIME_COMMANDS: (typeof AuthSignInRuntimeCommand | typeof AuthRegisterRuntimeCommand | typeof AuthRefreshRuntimeCommand | typeof AuthLogoutRuntimeCommand | typeof AuthUpdateSessionRuntimeCommand | typeof AuthTerminateOwnDeviceSessionRuntimeCommand)[];
51
57
  export declare class AuthListProvidersRuntimeQuery implements AXPServerQueryHandler<void, AuthListProvidersResponseDto> {
52
58
  private readonly moduleRef;
53
59
  constructor(moduleRef: ModuleRef);
@@ -66,11 +72,17 @@ export declare class AuthListApplicationsRuntimeQuery implements AXPServerQueryH
66
72
  constructor(sessionContext: SessionContextService, backendSession: BackendSessionService);
67
73
  execute(): AXPQueryFetchResultPromise<SessionApplicationItemDto>;
68
74
  }
75
+ export declare class AuthListOwnDeviceSessionsRuntimeQuery implements AXPServerQueryHandler<AuthListOwnDeviceSessionsRequestDto, AuthOwnDeviceSessionDto> {
76
+ private readonly auth;
77
+ private readonly tokenResolver;
78
+ constructor(auth: AuthService, tokenResolver: TokenResolverService);
79
+ execute(input: AuthListOwnDeviceSessionsRequestDto): AXPQueryFetchResultPromise<AuthOwnDeviceSessionDto>;
80
+ }
69
81
  export declare class AuthGetAccessPolicyRuntimeQuery implements AXPServerQueryHandler<void, SessionAccessPolicyDto> {
70
82
  private readonly sessionContext;
71
83
  private readonly backendSession;
72
84
  constructor(sessionContext: SessionContextService, backendSession: BackendSessionService);
73
85
  execute(): AXPQueryFetchResultPromise<SessionAccessPolicyDto>;
74
86
  }
75
- export declare const AUTH_RUNTIME_QUERIES: (typeof AuthListProvidersRuntimeQuery | typeof AuthListTenantsRuntimeQuery | typeof AuthListApplicationsRuntimeQuery | typeof AuthGetAccessPolicyRuntimeQuery)[];
87
+ export declare const AUTH_RUNTIME_QUERIES: (typeof AuthListProvidersRuntimeQuery | typeof AuthListTenantsRuntimeQuery | typeof AuthListApplicationsRuntimeQuery | typeof AuthListOwnDeviceSessionsRuntimeQuery | typeof AuthGetAccessPolicyRuntimeQuery)[];
76
88
  //# sourceMappingURL=auth-runtime.handlers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-runtime.handlers.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/auth/auth-runtime.handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-runtime.handlers.d.ts","sourceRoot":"","sources":["../../../../../../../../libs/framework/server/security/src/lib/auth/auth-runtime.handlers.ts"],"names":[],"mappings":"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"}