@authup/server-core 1.0.0-beta.26 → 1.0.0-beta.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/database-unique-entries/factory.d.ts +3 -0
- package/dist/components/database-unique-entries/factory.d.ts.map +1 -0
- package/dist/components/database-unique-entries/factory.js +14 -0
- package/dist/components/database-unique-entries/factory.js.map +1 -0
- package/dist/components/database-unique-entries/index.d.ts +3 -0
- package/dist/components/database-unique-entries/index.d.ts.map +1 -0
- package/dist/components/database-unique-entries/index.js +25 -0
- package/dist/components/database-unique-entries/index.js.map +1 -0
- package/dist/components/database-unique-entries/module.d.ts +12 -0
- package/dist/components/database-unique-entries/module.d.ts.map +1 -0
- package/dist/components/database-unique-entries/module.js +87 -0
- package/dist/components/database-unique-entries/module.js.map +1 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/oauth2-cleaner/module.d.ts +1 -1
- package/dist/components/oauth2-cleaner/module.d.ts.map +1 -1
- package/dist/components/oauth2-cleaner/module.js +2 -2
- package/dist/components/oauth2-cleaner/module.js.map +1 -1
- package/dist/config/parse.js +6 -6
- package/dist/config/parse.js.map +1 -1
- package/dist/database/domains/client/repository.d.ts +13 -0
- package/dist/database/domains/client/repository.d.ts.map +1 -1
- package/dist/database/domains/client/repository.js +31 -14
- package/dist/database/domains/client/repository.js.map +1 -1
- package/dist/database/domains/robot/repository.d.ts +13 -0
- package/dist/database/domains/robot/repository.d.ts.map +1 -1
- package/dist/database/domains/robot/repository.js +31 -3
- package/dist/database/domains/robot/repository.js.map +1 -1
- package/dist/database/domains/user/repository.d.ts +12 -0
- package/dist/database/domains/user/repository.d.ts.map +1 -1
- package/dist/database/domains/user/repository.js +31 -14
- package/dist/database/domains/user/repository.js.map +1 -1
- package/dist/http/controllers/entities/client/handlers/delete.js +1 -1
- package/dist/http/controllers/entities/client/handlers/delete.js.map +1 -1
- package/dist/http/controllers/entities/client/handlers/read.d.ts.map +1 -1
- package/dist/http/controllers/entities/client/handlers/read.js +15 -9
- package/dist/http/controllers/entities/client/handlers/read.js.map +1 -1
- package/dist/http/controllers/entities/client/handlers/write.js +2 -2
- package/dist/http/controllers/entities/client/handlers/write.js.map +1 -1
- package/dist/http/controllers/entities/client-permission/handlers/create.js +1 -1
- package/dist/http/controllers/entities/client-permission/handlers/create.js.map +1 -1
- package/dist/http/controllers/entities/client-permission/handlers/delete.js +1 -1
- package/dist/http/controllers/entities/client-permission/handlers/delete.js.map +1 -1
- package/dist/http/controllers/entities/client-role/handlers/create.js +2 -2
- package/dist/http/controllers/entities/client-role/handlers/create.js.map +1 -1
- package/dist/http/controllers/entities/client-role/handlers/delete.js +1 -1
- package/dist/http/controllers/entities/client-role/handlers/delete.js.map +1 -1
- package/dist/http/controllers/entities/client-scope/handlers/create.js +1 -1
- package/dist/http/controllers/entities/client-scope/handlers/create.js.map +1 -1
- package/dist/http/controllers/entities/client-scope/handlers/delete.js +1 -1
- package/dist/http/controllers/entities/client-scope/handlers/delete.js.map +1 -1
- package/dist/http/controllers/entities/identity-provide-role/handlers/create.js +1 -1
- package/dist/http/controllers/entities/identity-provide-role/handlers/create.js.map +1 -1
- package/dist/http/controllers/entities/identity-provide-role/handlers/delete.js +1 -1
- package/dist/http/controllers/entities/identity-provide-role/handlers/delete.js.map +1 -1
- package/dist/http/controllers/entities/identity-provide-role/handlers/update.js +1 -1
- package/dist/http/controllers/entities/identity-provide-role/handlers/update.js.map +1 -1
- package/dist/http/controllers/entities/identity-provider/handlers/custom.d.ts.map +1 -1
- package/dist/http/controllers/entities/identity-provider/handlers/custom.js +63 -18
- package/dist/http/controllers/entities/identity-provider/handlers/custom.js.map +1 -1
- package/dist/http/controllers/entities/identity-provider/handlers/delete.js +1 -1
- package/dist/http/controllers/entities/identity-provider/handlers/delete.js.map +1 -1
- package/dist/http/controllers/entities/identity-provider/handlers/read.js +2 -2
- package/dist/http/controllers/entities/identity-provider/handlers/read.js.map +1 -1
- package/dist/http/controllers/entities/identity-provider/handlers/write.js +2 -2
- package/dist/http/controllers/entities/identity-provider/handlers/write.js.map +1 -1
- package/dist/http/controllers/entities/permission/handlers/check.js +2 -2
- package/dist/http/controllers/entities/permission/handlers/check.js.map +1 -1
- package/dist/http/controllers/entities/permission/handlers/delete.d.ts.map +1 -1
- package/dist/http/controllers/entities/permission/handlers/delete.js +6 -1
- package/dist/http/controllers/entities/permission/handlers/delete.js.map +1 -1
- package/dist/http/controllers/entities/permission/handlers/write.js +2 -2
- package/dist/http/controllers/entities/permission/handlers/write.js.map +1 -1
- package/dist/http/controllers/entities/permission/module.d.ts +2 -2
- package/dist/http/controllers/entities/permission/module.d.ts.map +1 -1
- package/dist/http/controllers/entities/permission/module.js.map +1 -1
- package/dist/http/controllers/entities/policy/handlers/check.js +2 -2
- package/dist/http/controllers/entities/policy/handlers/check.js.map +1 -1
- package/dist/http/controllers/entities/policy/handlers/delete.js +1 -1
- package/dist/http/controllers/entities/policy/handlers/delete.js.map +1 -1
- package/dist/http/controllers/entities/policy/handlers/write.js +2 -2
- package/dist/http/controllers/entities/policy/handlers/write.js.map +1 -1
- package/dist/http/controllers/entities/policy/module.d.ts +2 -2
- package/dist/http/controllers/entities/policy/module.d.ts.map +1 -1
- package/dist/http/controllers/entities/policy/module.js.map +1 -1
- package/dist/http/controllers/entities/realm/handlers/delete.d.ts.map +1 -1
- package/dist/http/controllers/entities/realm/handlers/delete.js +6 -1
- package/dist/http/controllers/entities/realm/handlers/delete.js.map +1 -1
- package/dist/http/controllers/entities/realm/handlers/write.d.ts.map +1 -1
- package/dist/http/controllers/entities/realm/handlers/write.js +12 -2
- package/dist/http/controllers/entities/realm/handlers/write.js.map +1 -1
- package/dist/http/controllers/entities/robot/handlers/delete.js +1 -1
- package/dist/http/controllers/entities/robot/handlers/delete.js.map +1 -1
- package/dist/http/controllers/entities/robot/handlers/read.js +3 -3
- package/dist/http/controllers/entities/robot/handlers/read.js.map +1 -1
- package/dist/http/controllers/entities/robot/handlers/write.js +2 -2
- package/dist/http/controllers/entities/robot/handlers/write.js.map +1 -1
- package/dist/http/controllers/entities/robot-permission/handlers/create.js +2 -2
- package/dist/http/controllers/entities/robot-permission/handlers/create.js.map +1 -1
- package/dist/http/controllers/entities/robot-permission/handlers/delete.js +1 -1
- package/dist/http/controllers/entities/robot-permission/handlers/delete.js.map +1 -1
- package/dist/http/controllers/entities/robot-role/handlers/create.js +2 -2
- package/dist/http/controllers/entities/robot-role/handlers/create.js.map +1 -1
- package/dist/http/controllers/entities/robot-role/handlers/delete.js +1 -1
- package/dist/http/controllers/entities/robot-role/handlers/delete.js.map +1 -1
- package/dist/http/controllers/entities/role/handlers/delete.js +1 -1
- package/dist/http/controllers/entities/role/handlers/delete.js.map +1 -1
- package/dist/http/controllers/entities/role/handlers/write.js +2 -2
- package/dist/http/controllers/entities/role/handlers/write.js.map +1 -1
- package/dist/http/controllers/entities/role-attribute/handlers/create.js +1 -1
- package/dist/http/controllers/entities/role-attribute/handlers/create.js.map +1 -1
- package/dist/http/controllers/entities/role-attribute/handlers/delete.d.ts.map +1 -1
- package/dist/http/controllers/entities/role-attribute/handlers/delete.js +6 -1
- package/dist/http/controllers/entities/role-attribute/handlers/delete.js.map +1 -1
- package/dist/http/controllers/entities/role-attribute/handlers/read.js +2 -2
- package/dist/http/controllers/entities/role-attribute/handlers/read.js.map +1 -1
- package/dist/http/controllers/entities/role-attribute/handlers/update.d.ts.map +1 -1
- package/dist/http/controllers/entities/role-attribute/handlers/update.js +6 -1
- package/dist/http/controllers/entities/role-attribute/handlers/update.js.map +1 -1
- package/dist/http/controllers/entities/role-permission/handlers/create.js +1 -1
- package/dist/http/controllers/entities/role-permission/handlers/create.js.map +1 -1
- package/dist/http/controllers/entities/role-permission/handlers/delete.js +1 -1
- package/dist/http/controllers/entities/role-permission/handlers/delete.js.map +1 -1
- package/dist/http/controllers/entities/scope/handlers/delete.js +1 -1
- package/dist/http/controllers/entities/scope/handlers/delete.js.map +1 -1
- package/dist/http/controllers/entities/scope/handlers/write.js +2 -2
- package/dist/http/controllers/entities/scope/handlers/write.js.map +1 -1
- package/dist/http/controllers/entities/user/handlers/delete.js +1 -1
- package/dist/http/controllers/entities/user/handlers/delete.js.map +1 -1
- package/dist/http/controllers/entities/user/handlers/read.js +3 -3
- package/dist/http/controllers/entities/user/handlers/read.js.map +1 -1
- package/dist/http/controllers/entities/user/handlers/register.d.ts.map +1 -1
- package/dist/http/controllers/entities/user/handlers/register.js +2 -2
- package/dist/http/controllers/entities/user/handlers/register.js.map +1 -1
- package/dist/http/controllers/entities/user/handlers/write.d.ts.map +1 -1
- package/dist/http/controllers/entities/user/handlers/write.js +5 -6
- package/dist/http/controllers/entities/user/handlers/write.js.map +1 -1
- package/dist/http/controllers/entities/user/index.d.ts +0 -1
- package/dist/http/controllers/entities/user/index.d.ts.map +1 -1
- package/dist/http/controllers/entities/user/index.js +0 -1
- package/dist/http/controllers/entities/user/index.js.map +1 -1
- package/dist/http/controllers/entities/user-attribute/utils/authorization.js +2 -2
- package/dist/http/controllers/entities/user-attribute/utils/authorization.js.map +1 -1
- package/dist/http/controllers/entities/user-permission/handlers/create.js +1 -1
- package/dist/http/controllers/entities/user-permission/handlers/create.js.map +1 -1
- package/dist/http/controllers/entities/user-permission/handlers/delete.js +1 -1
- package/dist/http/controllers/entities/user-permission/handlers/delete.js.map +1 -1
- package/dist/http/controllers/entities/user-role/handlers/create.js +1 -1
- package/dist/http/controllers/entities/user-role/handlers/create.js.map +1 -1
- package/dist/http/controllers/entities/user-role/handlers/delete.js +1 -1
- package/dist/http/controllers/entities/user-role/handlers/delete.js.map +1 -1
- package/dist/http/controllers/workflows/authorize/handlers/confirm.d.ts +3 -0
- package/dist/http/controllers/workflows/authorize/handlers/confirm.d.ts.map +1 -0
- package/dist/http/controllers/workflows/authorize/handlers/{run.js → confirm.js} +4 -4
- package/dist/http/controllers/workflows/authorize/handlers/confirm.js.map +1 -0
- package/dist/http/controllers/workflows/authorize/handlers/index.d.ts +2 -1
- package/dist/http/controllers/workflows/authorize/handlers/index.d.ts.map +1 -1
- package/dist/http/controllers/workflows/authorize/handlers/index.js +2 -1
- package/dist/http/controllers/workflows/authorize/handlers/index.js.map +1 -1
- package/dist/http/controllers/workflows/authorize/handlers/serve.d.ts +3 -0
- package/dist/http/controllers/workflows/authorize/handlers/serve.d.ts.map +1 -0
- package/dist/http/controllers/workflows/authorize/handlers/serve.js +41 -0
- package/dist/http/controllers/workflows/authorize/handlers/serve.js.map +1 -0
- package/dist/http/controllers/workflows/authorize/module.d.ts +2 -1
- package/dist/http/controllers/workflows/authorize/module.d.ts.map +1 -1
- package/dist/http/controllers/workflows/authorize/module.js +16 -3
- package/dist/http/controllers/workflows/authorize/module.js.map +1 -1
- package/dist/http/controllers/workflows/token/handlers/introspect.d.ts.map +1 -1
- package/dist/http/controllers/workflows/token/handlers/introspect.js.map +1 -1
- package/dist/http/middleware/built-in/assets.d.ts +3 -0
- package/dist/http/middleware/built-in/assets.d.ts.map +1 -0
- package/dist/http/middleware/built-in/assets.js +57 -0
- package/dist/http/middleware/built-in/assets.js.map +1 -0
- package/dist/http/middleware/built-in/authorization/module.d.ts.map +1 -1
- package/dist/http/middleware/built-in/authorization/module.js +3 -1
- package/dist/http/middleware/built-in/authorization/module.js.map +1 -1
- package/dist/http/middleware/built-in/index.d.ts +1 -0
- package/dist/http/middleware/built-in/index.d.ts.map +1 -1
- package/dist/http/middleware/built-in/index.js +1 -0
- package/dist/http/middleware/built-in/index.js.map +1 -1
- package/dist/http/middleware/module.d.ts +1 -1
- package/dist/http/middleware/module.d.ts.map +1 -1
- package/dist/http/middleware/module.js +2 -1
- package/dist/http/middleware/module.js.map +1 -1
- package/dist/http/oauth2/authorize/index.d.ts +1 -0
- package/dist/http/oauth2/authorize/index.d.ts.map +1 -1
- package/dist/http/oauth2/authorize/index.js +1 -0
- package/dist/http/oauth2/authorize/index.js.map +1 -1
- package/dist/http/oauth2/authorize/module.d.ts +15 -7
- package/dist/http/oauth2/authorize/module.d.ts.map +1 -1
- package/dist/http/oauth2/authorize/module.js +49 -18
- package/dist/http/oauth2/authorize/module.js.map +1 -1
- package/dist/http/oauth2/authorize/singleton.d.ts +2 -2
- package/dist/http/oauth2/authorize/singleton.js +1 -1
- package/dist/http/oauth2/authorize/state/index.d.ts +3 -0
- package/dist/http/oauth2/authorize/state/index.d.ts.map +1 -0
- package/dist/http/oauth2/authorize/state/index.js +25 -0
- package/dist/http/oauth2/authorize/state/index.js.map +1 -0
- package/dist/http/oauth2/authorize/state/module.d.ts +27 -0
- package/dist/http/oauth2/authorize/state/module.d.ts.map +1 -0
- package/dist/http/oauth2/authorize/state/module.js +78 -0
- package/dist/http/oauth2/authorize/state/module.js.map +1 -0
- package/dist/http/oauth2/authorize/state/types.d.ts +5 -0
- package/dist/http/oauth2/authorize/state/types.d.ts.map +1 -0
- package/dist/http/oauth2/authorize/state/types.js +9 -0
- package/dist/http/oauth2/authorize/state/types.js.map +1 -0
- package/dist/http/oauth2/authorize/types.d.ts +7 -1
- package/dist/http/oauth2/authorize/types.d.ts.map +1 -1
- package/dist/http/oauth2/authorize/validation.d.ts.map +1 -1
- package/dist/http/oauth2/authorize/validation.js +29 -64
- package/dist/http/oauth2/authorize/validation.js.map +1 -1
- package/dist/http/oauth2/constants.d.ts +1 -0
- package/dist/http/oauth2/constants.d.ts.map +1 -1
- package/dist/http/oauth2/constants.js +1 -0
- package/dist/http/oauth2/constants.js.map +1 -1
- package/dist/http/oauth2/grant-types/authorize.d.ts.map +1 -1
- package/dist/http/oauth2/grant-types/authorize.js +2 -1
- package/dist/http/oauth2/grant-types/authorize.js.map +1 -1
- package/dist/http/oauth2/grant-types/client-credentials.d.ts +2 -2
- package/dist/http/oauth2/grant-types/client-credentials.d.ts.map +1 -1
- package/dist/http/oauth2/grant-types/client-credentials.js +7 -13
- package/dist/http/oauth2/grant-types/client-credentials.js.map +1 -1
- package/dist/http/oauth2/grant-types/password.d.ts +1 -1
- package/dist/http/oauth2/grant-types/password.d.ts.map +1 -1
- package/dist/http/oauth2/grant-types/password.js +16 -11
- package/dist/http/oauth2/grant-types/password.js.map +1 -1
- package/dist/http/oauth2/scope/resolve.d.ts +1 -1
- package/dist/http/oauth2/scope/resolve.d.ts.map +1 -1
- package/dist/http/oauth2/scope/resolve.js +6 -3
- package/dist/http/oauth2/scope/resolve.js.map +1 -1
- package/dist/http/oauth2/token/builder/id-token.d.ts.map +1 -1
- package/dist/http/oauth2/token/builder/id-token.js.map +1 -1
- package/dist/http/oauth2/token/module.d.ts.map +1 -1
- package/dist/http/oauth2/token/module.js +3 -0
- package/dist/http/oauth2/token/module.js.map +1 -1
- package/dist/http/oauth2/token/sub.d.ts +2 -2
- package/dist/http/oauth2/token/sub.d.ts.map +1 -1
- package/dist/http/oauth2/token/sub.js +4 -4
- package/dist/http/oauth2/token/sub.js.map +1 -1
- package/dist/http/request/permission/module.js +2 -2
- package/dist/http/request/permission/module.js.map +1 -1
- package/dist/http/response/client.d.ts +8 -0
- package/dist/http/response/client.d.ts.map +1 -0
- package/dist/http/response/client.js +57 -0
- package/dist/http/response/client.js.map +1 -0
- package/dist/http/response/index.d.ts +2 -0
- package/dist/http/response/index.d.ts.map +1 -0
- package/dist/http/{controllers/entities/user/utils → response}/index.js +2 -2
- package/dist/http/response/index.js.map +1 -0
- package/dist/http/router/module.d.ts +1 -1
- package/dist/http/router/module.d.ts.map +1 -1
- package/dist/http/router/module.js +2 -2
- package/dist/http/router/module.js.map +1 -1
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +3 -2
- package/dist/module.js.map +1 -1
- package/dist/path.d.ts +1 -0
- package/dist/path.d.ts.map +1 -1
- package/dist/path.js +4 -0
- package/dist/path.js.map +1 -1
- package/dist/security/policy/variants/permission-binding/evaluator.d.ts +4 -4
- package/dist/security/policy/variants/permission-binding/evaluator.d.ts.map +1 -1
- package/dist/security/policy/variants/permission-binding/evaluator.js +17 -17
- package/dist/security/policy/variants/permission-binding/evaluator.js.map +1 -1
- package/dist/services/identity-provider/account/constants.d.ts +5 -0
- package/dist/services/identity-provider/account/constants.d.ts.map +1 -0
- package/dist/services/identity-provider/account/constants.js +15 -0
- package/dist/services/identity-provider/account/constants.js.map +1 -0
- package/dist/services/identity-provider/account/module.d.ts +6 -13
- package/dist/services/identity-provider/account/module.d.ts.map +1 -1
- package/dist/services/identity-provider/account/module.js +130 -119
- package/dist/services/identity-provider/account/module.js.map +1 -1
- package/dist/services/identity-provider/flow/core/ldap.d.ts.map +1 -1
- package/dist/services/identity-provider/flow/core/ldap.js +10 -3
- package/dist/services/identity-provider/flow/core/ldap.js.map +1 -1
- package/dist/services/identity-provider/flow/core/oauth2.d.ts +6 -5
- package/dist/services/identity-provider/flow/core/oauth2.d.ts.map +1 -1
- package/dist/services/identity-provider/flow/core/oauth2.js +25 -1
- package/dist/services/identity-provider/flow/core/oauth2.js.map +1 -1
- package/dist/services/identity-provider/flow/core/openid.d.ts.map +1 -1
- package/dist/services/identity-provider/flow/core/openid.js +12 -12
- package/dist/services/identity-provider/flow/core/openid.js.map +1 -1
- package/dist/services/identity-provider/flow/factory.d.ts.map +1 -1
- package/dist/services/identity-provider/flow/factory.js +4 -1
- package/dist/services/identity-provider/flow/factory.js.map +1 -1
- package/dist/services/identity-provider/flow/social/facebook.d.ts.map +1 -1
- package/dist/services/identity-provider/flow/social/facebook.js +15 -4
- package/dist/services/identity-provider/flow/social/facebook.js.map +1 -1
- package/dist/services/identity-provider/flow/social/github.d.ts.map +1 -1
- package/dist/services/identity-provider/flow/social/github.js +10 -5
- package/dist/services/identity-provider/flow/social/github.js.map +1 -1
- package/dist/services/identity-provider/flow/social/instagram.d.ts.map +1 -1
- package/dist/services/identity-provider/flow/social/instagram.js +6 -1
- package/dist/services/identity-provider/flow/social/instagram.js.map +1 -1
- package/dist/services/identity-provider/flow/social/paypal.d.ts.map +1 -1
- package/dist/services/identity-provider/flow/social/paypal.js +9 -2
- package/dist/services/identity-provider/flow/social/paypal.js.map +1 -1
- package/dist/services/identity-provider/flow/types.d.ts +14 -8
- package/dist/services/identity-provider/flow/types.d.ts.map +1 -1
- package/dist/swagger.json +19 -5
- package/dist/utils/error.d.ts.map +1 -1
- package/dist/utils/error.js +4 -1
- package/dist/utils/error.js.map +1 -1
- package/package.json +41 -35
- package/dist/http/controllers/entities/user/utils/index.d.ts +0 -2
- package/dist/http/controllers/entities/user/utils/index.d.ts.map +0 -1
- package/dist/http/controllers/entities/user/utils/index.js.map +0 -1
- package/dist/http/controllers/entities/user/utils/validator.d.ts +0 -6
- package/dist/http/controllers/entities/user/utils/validator.d.ts.map +0 -1
- package/dist/http/controllers/entities/user/utils/validator.js +0 -108
- package/dist/http/controllers/entities/user/utils/validator.js.map +0 -1
- package/dist/http/controllers/workflows/authorize/handlers/run.d.ts +0 -3
- package/dist/http/controllers/workflows/authorize/handlers/run.d.ts.map +0 -1
- package/dist/http/controllers/workflows/authorize/handlers/run.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/http/oauth2/authorize/state/index.ts"],"names":[],"mappings":"AAOA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2025.
|
|
4
|
+
* Author Peter Placzek (tada5hi)
|
|
5
|
+
* For the full copyright and license information,
|
|
6
|
+
* view the LICENSE file that was distributed with this source code.
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
20
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
21
|
+
};
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
__exportStar(require("./module"), exports);
|
|
24
|
+
__exportStar(require("./types"), exports);
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/http/oauth2/authorize/state/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,0CAAwB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Cache } from '@authup/server-kit';
|
|
2
|
+
import type { Request } from 'routup';
|
|
3
|
+
import type { OAuth2AuthorizeStateData } from './types';
|
|
4
|
+
export declare class OAuth2AuthorizationStateManager {
|
|
5
|
+
protected cache: Cache;
|
|
6
|
+
constructor();
|
|
7
|
+
/**
|
|
8
|
+
* Create and store a state with meta information for an incoming request.
|
|
9
|
+
*
|
|
10
|
+
* The state is stored in the cache for 30 minutes.
|
|
11
|
+
*
|
|
12
|
+
* @param req
|
|
13
|
+
* @param data
|
|
14
|
+
*/
|
|
15
|
+
create(req: Request, data: OAuth2AuthorizeStateData): Promise<string>;
|
|
16
|
+
/**
|
|
17
|
+
* Verify if the request state is valid and return the stored data.
|
|
18
|
+
*
|
|
19
|
+
* The state is removed from the cache after verification.
|
|
20
|
+
*
|
|
21
|
+
* @throws OAuth2Error.stateInvalid
|
|
22
|
+
*
|
|
23
|
+
* @param req
|
|
24
|
+
*/
|
|
25
|
+
verify(req: Request): Promise<OAuth2AuthorizeStateData>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/http/oauth2/authorize/state/module.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAIhD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAExD,qBAAa,+BAA+B;IACxC,SAAS,CAAC,KAAK,EAAG,KAAK,CAAC;;IAMxB;;;;;;;OAOG;IACG,MAAM,CACR,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,wBAAwB,GAC9B,OAAO,CAAC,MAAM,CAAC;IAuBnB;;;;;;;;OAQG;IACG,MAAM,CAAC,GAAG,EAAE,OAAO,GAAI,OAAO,CAAC,wBAAwB,CAAC;CAiCjE"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2025.
|
|
4
|
+
* Author Peter Placzek (tada5hi)
|
|
5
|
+
* For the full copyright and license information,
|
|
6
|
+
* view the LICENSE file that was distributed with this source code.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.OAuth2AuthorizationStateManager = void 0;
|
|
10
|
+
const kit_1 = require("@authup/kit");
|
|
11
|
+
const server_kit_1 = require("@authup/server-kit");
|
|
12
|
+
const specs_1 = require("@authup/specs");
|
|
13
|
+
const query_1 = require("@routup/basic/query");
|
|
14
|
+
const routup_1 = require("routup");
|
|
15
|
+
const constants_1 = require("../../constants");
|
|
16
|
+
class OAuth2AuthorizationStateManager {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.cache = (0, server_kit_1.useCache)();
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Create and store a state with meta information for an incoming request.
|
|
22
|
+
*
|
|
23
|
+
* The state is stored in the cache for 30 minutes.
|
|
24
|
+
*
|
|
25
|
+
* @param req
|
|
26
|
+
* @param data
|
|
27
|
+
*/
|
|
28
|
+
async create(req, data) {
|
|
29
|
+
const state = (0, kit_1.createNanoID)();
|
|
30
|
+
const ip = (0, routup_1.getRequestIP)(req, {
|
|
31
|
+
trustProxy: true,
|
|
32
|
+
});
|
|
33
|
+
const userAgent = (0, routup_1.getRequestHeader)(req, 'user-agent');
|
|
34
|
+
await this.cache.set((0, server_kit_1.buildCacheKey)({ prefix: constants_1.OAuth2CachePrefix.AUTHORIZATION_CODE, key: state }), {
|
|
35
|
+
ip,
|
|
36
|
+
userAgent,
|
|
37
|
+
data,
|
|
38
|
+
}, {
|
|
39
|
+
ttl: 1000 * 60 * 30, // 30 min
|
|
40
|
+
});
|
|
41
|
+
return state;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Verify if the request state is valid and return the stored data.
|
|
45
|
+
*
|
|
46
|
+
* The state is removed from the cache after verification.
|
|
47
|
+
*
|
|
48
|
+
* @throws OAuth2Error.stateInvalid
|
|
49
|
+
*
|
|
50
|
+
* @param req
|
|
51
|
+
*/
|
|
52
|
+
async verify(req) {
|
|
53
|
+
const query = (0, query_1.useRequestQuery)(req);
|
|
54
|
+
if (typeof query.state !== 'string') {
|
|
55
|
+
throw specs_1.OAuth2Error.stateInvalid();
|
|
56
|
+
}
|
|
57
|
+
const cacheKey = (0, server_kit_1.buildCacheKey)({ prefix: constants_1.OAuth2CachePrefix.AUTHORIZATION_CODE, key: query.state });
|
|
58
|
+
const cached = await this.cache.get(cacheKey);
|
|
59
|
+
if (!cached) {
|
|
60
|
+
throw specs_1.OAuth2Error.stateInvalid();
|
|
61
|
+
}
|
|
62
|
+
// avoid replay attack :)
|
|
63
|
+
await this.cache.drop(cacheKey);
|
|
64
|
+
const ip = (0, routup_1.getRequestIP)(req, {
|
|
65
|
+
trustProxy: true,
|
|
66
|
+
});
|
|
67
|
+
if (ip !== cached.ip) {
|
|
68
|
+
throw specs_1.OAuth2Error.stateInvalid();
|
|
69
|
+
}
|
|
70
|
+
const userAgent = (0, routup_1.getRequestHeader)(req, 'user-agent');
|
|
71
|
+
if (userAgent !== cached.userAgent) {
|
|
72
|
+
throw specs_1.OAuth2Error.stateInvalid();
|
|
73
|
+
}
|
|
74
|
+
return cached.data;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.OAuth2AuthorizationStateManager = OAuth2AuthorizationStateManager;
|
|
78
|
+
//# sourceMappingURL=module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../src/http/oauth2/authorize/state/module.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,qCAA2C;AAE3C,mDAA6D;AAC7D,yCAA4C;AAC5C,+CAAsD;AAEtD,mCAAwD;AACxD,+CAAoD;AAGpD,MAAa,+BAA+B;IAGxC;QACI,IAAI,CAAC,KAAK,GAAG,IAAA,qBAAQ,GAAE,CAAC;IAC5B,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CACR,GAAY,EACZ,IAA8B;QAE9B,MAAM,KAAK,GAAG,IAAA,kBAAY,GAAE,CAAC;QAE7B,MAAM,EAAE,GAAG,IAAA,qBAAY,EAAC,GAAG,EAAE;YACzB,UAAU,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAA,yBAAgB,EAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAEtD,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAChB,IAAA,0BAAa,EAAC,EAAE,MAAM,EAAE,6BAAiB,CAAC,kBAAkB,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAC3E;YACI,EAAE;YACF,SAAS;YACT,IAAI;SACP,EACD;YACI,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,SAAS;SACjC,CACJ,CAAC;QAEF,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,MAAM,CAAC,GAAY;QACrB,MAAM,KAAK,GAAG,IAAA,uBAAe,EAAC,GAAG,CAAC,CAAC;QACnC,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAClC,MAAM,mBAAW,CAAC,YAAY,EAAE,CAAC;QACrC,CAAC;QAED,MAAM,QAAQ,GAAG,IAAA,0BAAa,EAAC,EAAE,MAAM,EAAE,6BAAiB,CAAC,kBAAkB,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACnG,MAAM,MAAM,GAIR,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,mBAAW,CAAC,YAAY,EAAE,CAAC;QACrC,CAAC;QAED,yBAAyB;QACzB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEhC,MAAM,EAAE,GAAG,IAAA,qBAAY,EAAC,GAAG,EAAE;YACzB,UAAU,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,IAAI,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;YACnB,MAAM,mBAAW,CAAC,YAAY,EAAE,CAAC;QACrC,CAAC;QAED,MAAM,SAAS,GAAG,IAAA,yBAAgB,EAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACtD,IAAI,SAAS,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;YACjC,MAAM,mBAAW,CAAC,YAAY,EAAE,CAAC;QACrC,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC;IACvB,CAAC;CACJ;AAnFD,0EAmFC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/http/oauth2/authorize/state/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAEvE,MAAM,MAAM,wBAAwB,GAAG;IACnC,WAAW,CAAC,EAAE,8BAA8B,CAAA;CAC/C,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2025.
|
|
4
|
+
* Author Peter Placzek (tada5hi)
|
|
5
|
+
* For the full copyright and license information,
|
|
6
|
+
* view the LICENSE file that was distributed with this source code.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/http/oauth2/authorize/state/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
import type { Client, ClientScope, OAuth2AuthorizationCodeRequest } from '@authup/core-kit';
|
|
2
|
+
export type OAuth2AuthorizationManagerOptions = {
|
|
2
3
|
issuer: string;
|
|
3
4
|
accessTokenMaxAge: number;
|
|
4
5
|
authorizationCodeMaxAge: number;
|
|
5
6
|
idTokenMaxAge: number;
|
|
6
7
|
};
|
|
8
|
+
export type OAuth2AuthorizationCodeRequestContainer = {
|
|
9
|
+
data: OAuth2AuthorizationCodeRequest;
|
|
10
|
+
client: Client;
|
|
11
|
+
clientScopes: ClientScope[];
|
|
12
|
+
};
|
|
7
13
|
export type OAuth2AuthorizationResult = {
|
|
8
14
|
authorizationCode?: string;
|
|
9
15
|
accessToken?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/http/oauth2/authorize/types.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,iCAAiC,GAAG;IAC5C,MAAM,EAAE,MAAM,CAAC;IAEf,iBAAiB,EAAE,MAAM,CAAC;IAE1B,uBAAuB,EAAE,MAAM,CAAC;IAEhC,aAAa,EAAE,MAAM,CAAA;CACxB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACpC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/http/oauth2/authorize/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAE5F,MAAM,MAAM,iCAAiC,GAAG;IAC5C,MAAM,EAAE,MAAM,CAAC;IAEf,iBAAiB,EAAE,MAAM,CAAC;IAE1B,uBAAuB,EAAE,MAAM,CAAC;IAEhC,aAAa,EAAE,MAAM,CAAA;CACxB,CAAC;AAEF,MAAM,MAAM,uCAAuC,GAAG;IAClD,IAAI,EAAE,8BAA8B,CAAC;IAErC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,WAAW,EAAE,CAAA;CAC9B,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACpC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/http/oauth2/authorize/validation.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAQvE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/http/oauth2/authorize/validation.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAQvE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,qBAAa,yBAA0B,SAAQ,SAAS,CAAC,8BAA8B,CAAC;IACpF,SAAS,CAAC,UAAU;CAoEvB"}
|
|
@@ -5,78 +5,43 @@
|
|
|
5
5
|
* For the full copyright and license information,
|
|
6
6
|
* view the LICENSE file that was distributed with this source code.
|
|
7
7
|
*/
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
8
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
12
|
exports.AuthorizeRequestValidator = void 0;
|
|
10
13
|
const specs_1 = require("@authup/specs");
|
|
11
|
-
const
|
|
14
|
+
const adapter_zod_1 = require("@validup/adapter-zod");
|
|
12
15
|
const validup_1 = require("validup");
|
|
16
|
+
const zod_1 = __importDefault(require("zod"));
|
|
13
17
|
class AuthorizeRequestValidator extends validup_1.Container {
|
|
14
18
|
initialize() {
|
|
15
19
|
super.initialize();
|
|
16
|
-
this.mount('response_type', (0,
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
20
|
+
this.mount('response_type', (0, adapter_zod_1.createValidator)(zod_1.default
|
|
21
|
+
.string()
|
|
22
|
+
.nonempty()
|
|
23
|
+
.check((ctx) => {
|
|
24
|
+
const availableResponseTypes = Object.values(specs_1.OAuth2AuthorizationResponseType);
|
|
25
|
+
const responseTypes = ctx.value.split(' ');
|
|
26
|
+
for (let i = 0; i < responseTypes.length; i++) {
|
|
27
|
+
if (availableResponseTypes.indexOf(responseTypes[i]) === -1) {
|
|
28
|
+
const error = specs_1.OAuth2Error.responseTypeUnsupported();
|
|
29
|
+
ctx.issues.push({
|
|
30
|
+
input: responseTypes[i],
|
|
31
|
+
code: 'custom',
|
|
32
|
+
message: error.message,
|
|
33
|
+
});
|
|
29
34
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}));
|
|
33
|
-
this.mount('redirect_uri', (0,
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}));
|
|
41
|
-
this.mount('scope', (0, adapter_validator_1.createValidator)(() => {
|
|
42
|
-
const chain = (0, adapter_validator_1.createValidationChain)();
|
|
43
|
-
return chain
|
|
44
|
-
.exists()
|
|
45
|
-
.notEmpty()
|
|
46
|
-
.isString()
|
|
47
|
-
.isLength({ min: 3, max: 512 });
|
|
48
|
-
}));
|
|
49
|
-
this.mount('state', { optional: true }, (0, adapter_validator_1.createValidator)(() => {
|
|
50
|
-
const chain = (0, adapter_validator_1.createValidationChain)();
|
|
51
|
-
return chain
|
|
52
|
-
.exists()
|
|
53
|
-
.notEmpty()
|
|
54
|
-
.isString()
|
|
55
|
-
.isLength({ min: 5, max: 2048 })
|
|
56
|
-
.optional({ values: 'null' });
|
|
57
|
-
}));
|
|
58
|
-
this.mount('code_challenge', { optional: true }, (0, adapter_validator_1.createValidator)(() => {
|
|
59
|
-
const chain = (0, adapter_validator_1.createValidationChain)();
|
|
60
|
-
return chain
|
|
61
|
-
.isString()
|
|
62
|
-
.isLength({ max: 256 })
|
|
63
|
-
.optional({ values: 'null' });
|
|
64
|
-
}));
|
|
65
|
-
this.mount('code_challenge_method', { optional: true }, (0, adapter_validator_1.createValidator)(() => {
|
|
66
|
-
const chain = (0, adapter_validator_1.createValidationChain)();
|
|
67
|
-
return chain
|
|
68
|
-
.isString()
|
|
69
|
-
.isIn(Object.values(specs_1.OAuth2AuthorizationCodeChallengeMethod))
|
|
70
|
-
.optional({ values: 'null' });
|
|
71
|
-
}));
|
|
72
|
-
this.mount('client_id', (0, adapter_validator_1.createValidator)(() => {
|
|
73
|
-
const chain = (0, adapter_validator_1.createValidationChain)();
|
|
74
|
-
return chain
|
|
75
|
-
.exists()
|
|
76
|
-
.notEmpty()
|
|
77
|
-
.isString()
|
|
78
|
-
.isUUID();
|
|
79
|
-
}));
|
|
35
|
+
}
|
|
36
|
+
return zod_1.default.NEVER;
|
|
37
|
+
})));
|
|
38
|
+
this.mount('redirect_uri', (0, adapter_zod_1.createValidator)(zod_1.default.string().url()));
|
|
39
|
+
this.mount('scope', (0, adapter_zod_1.createValidator)(zod_1.default.string().min(3).max(512)));
|
|
40
|
+
this.mount('state', { optional: true }, (0, adapter_zod_1.createValidator)(zod_1.default.string().min(5).max(2048).nullable()));
|
|
41
|
+
this.mount('code_challenge', { optional: true }, (0, adapter_zod_1.createValidator)(zod_1.default.string().min(1).max(256).nullable()));
|
|
42
|
+
this.mount('code_challenge_method', { optional: true }, (0, adapter_zod_1.createValidator)(zod_1.default.nativeEnum(specs_1.OAuth2AuthorizationCodeChallengeMethod).nullable()));
|
|
43
|
+
this.mount('realm_id', { optional: true }, (0, adapter_zod_1.createValidator)(zod_1.default.string().nonempty()));
|
|
44
|
+
this.mount('client_id', (0, adapter_zod_1.createValidator)(zod_1.default.string().nonempty()));
|
|
80
45
|
}
|
|
81
46
|
}
|
|
82
47
|
exports.AuthorizeRequestValidator = AuthorizeRequestValidator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../src/http/oauth2/authorize/validation.ts"],"names":[],"mappings":";AAAA;;;;;GAKG
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../../src/http/oauth2/authorize/validation.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;AAGH,yCAIuB;AAEvB,sDAAuD;AACvD,qCAAoC;AACpC,8CAAsB;AAEtB,MAAa,yBAA0B,SAAQ,mBAAyC;IAC1E,UAAU;QAChB,KAAK,CAAC,UAAU,EAAE,CAAC;QAEnB,IAAI,CAAC,KAAK,CACN,eAAe,EACf,IAAA,6BAAe,EACX,aAAG;aACE,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACX,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,uCAA+B,CAAC,CAAC;YAC9E,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAsC,CAAC;YAEhF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,IAAI,sBAAsB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBAC1D,MAAM,KAAK,GAAG,mBAAW,CAAC,uBAAuB,EAAE,CAAC;oBACpD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;wBACZ,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;wBACvB,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,KAAK,CAAC,OAAO;qBACzB,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;YAED,OAAO,aAAG,CAAC,KAAK,CAAC;QACrB,CAAC,CAAC,CACT,CACJ,CAAC;QAEF,IAAI,CAAC,KAAK,CACN,cAAc,EACd,IAAA,6BAAe,EAAC,aAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CACtC,CAAC;QAEF,IAAI,CAAC,KAAK,CACN,OAAO,EACP,IAAA,6BAAe,EAAC,aAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAChD,CAAC;QAEF,IAAI,CAAC,KAAK,CACN,OAAO,EACP,EAAE,QAAQ,EAAE,IAAI,EAAE,EAClB,IAAA,6BAAe,EAAC,aAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAC5D,CAAC;QAEF,IAAI,CAAC,KAAK,CACN,gBAAgB,EAChB,EAAE,QAAQ,EAAE,IAAI,EAAE,EAClB,IAAA,6BAAe,EAAC,aAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAC3D,CAAC;QAEF,IAAI,CAAC,KAAK,CACN,uBAAuB,EACvB,EAAE,QAAQ,EAAE,IAAI,EAAE,EAClB,IAAA,6BAAe,EAAC,aAAG,CAAC,UAAU,CAAC,8CAAsC,CAAC,CAAC,QAAQ,EAAE,CAAC,CACrF,CAAC;QAEF,IAAI,CAAC,KAAK,CACN,UAAU,EACV,EAAE,QAAQ,EAAE,IAAI,EAAE,EAClB,IAAA,6BAAe,EAAC,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,CAC3C,CAAC;QAEF,IAAI,CAAC,KAAK,CACN,WAAW,EACX,IAAA,6BAAe,EAAC,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,CAC3C,CAAC;IACN,CAAC;CACJ;AArED,8DAqEC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/http/oauth2/constants.ts"],"names":[],"mappings":"AAOA,oBAAY,iBAAiB;IACzB,kBAAkB,8BAA8B;IAChD,YAAY,wBAAwB;IACpC,cAAc,yBAAyB;CAC1C"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/http/oauth2/constants.ts"],"names":[],"mappings":"AAOA,oBAAY,iBAAiB;IACzB,mBAAmB,+BAA+B;IAClD,kBAAkB,8BAA8B;IAChD,YAAY,wBAAwB;IACpC,cAAc,yBAAyB;CAC1C"}
|
|
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.OAuth2CachePrefix = void 0;
|
|
10
10
|
var OAuth2CachePrefix;
|
|
11
11
|
(function (OAuth2CachePrefix) {
|
|
12
|
+
OAuth2CachePrefix["AUTHORIZATION_STATE"] = "oauth2_authorization_state";
|
|
12
13
|
OAuth2CachePrefix["AUTHORIZATION_CODE"] = "oauth2_authorization_code";
|
|
13
14
|
OAuth2CachePrefix["TOKEN_CLAIMS"] = "oauth2_token_claims";
|
|
14
15
|
OAuth2CachePrefix["TOKEN_INACTIVE"] = "oauth2_token_blocked";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/http/oauth2/constants.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,IAAY,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/http/oauth2/constants.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,IAAY,iBAKX;AALD,WAAY,iBAAiB;IACzB,uEAAkD,CAAA;IAClD,qEAAgD,CAAA;IAChD,yDAAoC,CAAA;IACpC,4DAAuC,CAAA;AAC3C,CAAC,EALW,iBAAiB,iCAAjB,iBAAiB,QAK5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorize.d.ts","sourceRoot":"","sources":["../../../../src/http/oauth2/grant-types/authorize.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"authorize.d.ts","sourceRoot":"","sources":["../../../../src/http/oauth2/grant-types/authorize.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAO9D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAMhE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAIpC,qBAAa,kBAAmB,SAAQ,aAAc,YAAW,KAAK;IAClE,SAAS,CAAC,cAAc,EAAG,iCAAiC,CAAC;;IAOvD,GAAG,CAAC,OAAO,EAAE,OAAO,GAAI,OAAO,CAAC,wBAAwB,CAAC;IAsCzD,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAI,OAAO,CAAC,uBAAuB,CAAC;IAiCnE,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAI,MAAM;IAS5D,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAI,MAAM;IASrD,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAI,MAAM,GAAG,SAAS;CAezE"}
|
|
@@ -39,7 +39,8 @@ class AuthorizeGrantType extends abstract_1.AbstractGrant {
|
|
|
39
39
|
refreshToken,
|
|
40
40
|
refreshTokenPayload,
|
|
41
41
|
};
|
|
42
|
-
if (
|
|
42
|
+
if (authorizationCode.scope &&
|
|
43
|
+
(0, specs_1.hasOAuth2Scopes)(authorizationCode.scope, core_kit_1.ScopeName.OPEN_ID)) {
|
|
43
44
|
buildContext.idToken = authorizationCode.id_token;
|
|
44
45
|
}
|
|
45
46
|
return (0, response_1.buildOAuth2BearerTokenResponse)(buildContext);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorize.js","sourceRoot":"","sources":["../../../../src/http/oauth2/grant-types/authorize.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,
|
|
1
|
+
{"version":3,"file":"authorize.js","sourceRoot":"","sources":["../../../../src/http/oauth2/grant-types/authorize.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { OAuth2TokenGrantResponse } from '@authup/specs';
|
|
2
2
|
import type { Request } from 'routup';
|
|
3
|
-
import { ClientEntity } from '../../../database/domains';
|
|
3
|
+
import type { ClientEntity } from '../../../database/domains';
|
|
4
4
|
import { AbstractGrant } from './abstract';
|
|
5
5
|
import type { Grant } from './type';
|
|
6
6
|
export declare class ClientCredentialsGrant extends AbstractGrant implements Grant {
|
|
7
7
|
run(request: Request): Promise<OAuth2TokenGrantResponse>;
|
|
8
8
|
validate(request: Request): Promise<ClientEntity>;
|
|
9
|
-
protected getClientCredentials(request: Request): [string, string];
|
|
9
|
+
protected getClientCredentials(request: Request): [string, string, string | undefined];
|
|
10
10
|
}
|
|
11
11
|
//# sourceMappingURL=client-credentials.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-credentials.d.ts","sourceRoot":"","sources":["../../../../src/http/oauth2/grant-types/client-credentials.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"client-credentials.d.ts","sourceRoot":"","sources":["../../../../src/http/oauth2/grant-types/client-credentials.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAU9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAGpC,qBAAa,sBAAuB,SAAQ,aAAc,YAAW,KAAK;IAChE,GAAG,CAAC,OAAO,EAAE,OAAO,GAAI,OAAO,CAAC,wBAAwB,CAAC;IA6BzD,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAI,OAAO,CAAC,YAAY,CAAC;IAcxD,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAoB1F"}
|
|
@@ -10,7 +10,6 @@ exports.ClientCredentialsGrant = void 0;
|
|
|
10
10
|
const specs_1 = require("@authup/specs");
|
|
11
11
|
const core_kit_1 = require("@authup/core-kit");
|
|
12
12
|
const body_1 = require("@routup/basic/body");
|
|
13
|
-
const query_1 = require("@routup/basic/query");
|
|
14
13
|
const hapic_1 = require("hapic");
|
|
15
14
|
const routup_1 = require("routup");
|
|
16
15
|
const typeorm_extension_1 = require("typeorm-extension");
|
|
@@ -38,24 +37,19 @@ class ClientCredentialsGrant extends abstract_1.AbstractGrant {
|
|
|
38
37
|
});
|
|
39
38
|
}
|
|
40
39
|
async validate(request) {
|
|
41
|
-
const [id, secret] = this.getClientCredentials(request);
|
|
40
|
+
const [id, secret, realmId] = this.getClientCredentials(request);
|
|
42
41
|
const dataSource = await (0, typeorm_extension_1.useDataSource)();
|
|
43
|
-
const repository =
|
|
44
|
-
const entity = await repository.
|
|
45
|
-
where: {
|
|
46
|
-
id,
|
|
47
|
-
secret,
|
|
48
|
-
},
|
|
49
|
-
relations: ['realm'],
|
|
50
|
-
});
|
|
42
|
+
const repository = new domains_1.ClientRepository(dataSource);
|
|
43
|
+
const entity = await repository.verifyCredentials(id, secret, realmId);
|
|
51
44
|
if (!entity) {
|
|
52
45
|
throw core_kit_1.UserError.credentialsInvalid();
|
|
53
46
|
}
|
|
54
47
|
return entity;
|
|
55
48
|
}
|
|
56
49
|
getClientCredentials(request) {
|
|
57
|
-
let clientId = (0, body_1.useRequestBody)(request, 'client_id')
|
|
58
|
-
let clientSecret = (0, body_1.useRequestBody)(request, 'client_secret')
|
|
50
|
+
let clientId = (0, body_1.useRequestBody)(request, 'client_id');
|
|
51
|
+
let clientSecret = (0, body_1.useRequestBody)(request, 'client_secret');
|
|
52
|
+
const realmId = (0, body_1.useRequestBody)(request, 'realm_id');
|
|
59
53
|
if (!clientId && !clientSecret) {
|
|
60
54
|
const { authorization: headerValue } = request.headers;
|
|
61
55
|
const header = (0, hapic_1.parseAuthorizationHeader)(headerValue);
|
|
@@ -65,7 +59,7 @@ class ClientCredentialsGrant extends abstract_1.AbstractGrant {
|
|
|
65
59
|
clientId = header.username;
|
|
66
60
|
clientSecret = header.password;
|
|
67
61
|
}
|
|
68
|
-
return [clientId, clientSecret];
|
|
62
|
+
return [clientId, clientSecret, realmId];
|
|
69
63
|
}
|
|
70
64
|
}
|
|
71
65
|
exports.ClientCredentialsGrant = ClientCredentialsGrant;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-credentials.js","sourceRoot":"","sources":["../../../../src/http/oauth2/grant-types/client-credentials.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,yCAGuB;AACvB,+CAE0B;AAC1B,6CAAoD;AACpD
|
|
1
|
+
{"version":3,"file":"client-credentials.js","sourceRoot":"","sources":["../../../../src/http/oauth2/grant-types/client-credentials.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,yCAGuB;AACvB,+CAE0B;AAC1B,6CAAoD;AACpD,iCAA0E;AAE1E,mCAAsC;AACtC,yDAAkD;AAElD,uDAA6D;AAC7D,yCAA2C;AAE3C,0CAA6D;AAE7D,MAAa,sBAAuB,SAAQ,wBAAa;IACrD,KAAK,CAAC,GAAG,CAAC,OAAgB;QACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE5C,MAAM,EACF,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,kBAAkB,GAC9B,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC;YAC5B,aAAa,EAAE,IAAA,qBAAY,EAAC,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;YAC1D,KAAK,EAAE,oBAAS,CAAC,MAAM;YACvB,GAAG,EAAE,MAAM,CAAC,EAAE;YACd,OAAO,EAAE,qBAAa,CAAC,MAAM;YAC7B,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;YACxB,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;YAC5B,QAAQ,EAAE,MAAM,CAAC,EAAE;SACtB,CAAC,CAAC;QAEH,MAAM,EACF,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,mBAAmB,GAC/B,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;QAErD,OAAO,IAAA,yCAA8B,EAAC;YAClC,WAAW;YACX,kBAAkB;YAClB,YAAY;YACZ,mBAAmB;SACtB,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAgB;QAC3B,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAEjE,MAAM,UAAU,GAAG,MAAM,IAAA,iCAAa,GAAE,CAAC;QACzC,MAAM,UAAU,GAAG,IAAI,0BAAgB,CAAC,UAAU,CAAC,CAAC;QAEpD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACvE,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,oBAAS,CAAC,kBAAkB,EAAE,CAAC;QACzC,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAES,oBAAoB,CAAC,OAAgB;QAC3C,IAAI,QAAQ,GAAG,IAAA,qBAAc,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACpD,IAAI,YAAY,GAAG,IAAA,qBAAc,EAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAA,qBAAc,EAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAEpD,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;YAC7B,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;YAEvD,MAAM,MAAM,GAAG,IAAA,gCAAwB,EAAC,WAAW,CAAC,CAAC;YAErD,IAAI,MAAM,CAAC,IAAI,KAAK,+BAAuB,CAAC,KAAK,EAAE,CAAC;gBAChD,MAAM,mBAAW,CAAC,cAAc,EAAE,CAAC;YACvC,CAAC;YAED,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC3B,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC;QACnC,CAAC;QAED,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;CACJ;AAhED,wDAgEC"}
|
|
@@ -6,6 +6,6 @@ import type { Grant } from './type';
|
|
|
6
6
|
export declare class PasswordGrantType extends AbstractGrant implements Grant {
|
|
7
7
|
run(request: Request): Promise<OAuth2TokenGrantResponse>;
|
|
8
8
|
validate(request: Request): Promise<UserEntity>;
|
|
9
|
-
protected
|
|
9
|
+
protected verifyCredentialsWithLDAP(user: string, password: string, realmId?: string): Promise<UserEntity>;
|
|
10
10
|
}
|
|
11
11
|
//# sourceMappingURL=password.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../../../src/http/oauth2/grant-types/password.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../../../src/http/oauth2/grant-types/password.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAO9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAWtC,OAAO,EAEH,UAAU,EAEb,MAAM,2BAA2B,CAAC;AAMnC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEpC,qBAAa,iBAAkB,SAAQ,aAAc,YAAW,KAAK;IAC3D,GAAG,CAAC,OAAO,EAAE,OAAO,GAAI,OAAO,CAAC,wBAAwB,CAAC;IA4BzD,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAI,OAAO,CAAC,UAAU,CAAC;cA+BtC,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAI,OAAO,CAAC,UAAU,CAAC;CAuEpH"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.PasswordGrantType = void 0;
|
|
10
|
+
const kit_1 = require("@authup/kit");
|
|
10
11
|
const specs_1 = require("@authup/specs");
|
|
11
12
|
const core_kit_1 = require("@authup/core-kit");
|
|
12
13
|
const body_1 = require("@routup/basic/body");
|
|
@@ -37,17 +38,12 @@ class PasswordGrantType extends abstract_1.AbstractGrant {
|
|
|
37
38
|
});
|
|
38
39
|
}
|
|
39
40
|
async validate(request) {
|
|
40
|
-
const { username, password, realm_id:
|
|
41
|
-
const realm = await (0, domains_1.resolveRealm)((0, routup_1.useRequestParam)(request, 'realmId') || requestRealmId);
|
|
41
|
+
const { username, password, realm_id: realmId, } = (0, body_1.useRequestBody)(request);
|
|
42
42
|
const dataSource = await (0, typeorm_extension_1.useDataSource)();
|
|
43
43
|
const repository = new domains_1.UserRepository(dataSource);
|
|
44
|
-
let realmId;
|
|
45
|
-
if (realm && realm.id) {
|
|
46
|
-
realmId = realm.id;
|
|
47
|
-
}
|
|
48
44
|
let entity = await repository.verifyCredentials(username, password, realmId);
|
|
49
45
|
if (!entity) {
|
|
50
|
-
entity = await this.
|
|
46
|
+
entity = await this.verifyCredentialsWithLDAP(username, password, realmId);
|
|
51
47
|
}
|
|
52
48
|
if (!entity) {
|
|
53
49
|
throw core_kit_1.UserError.credentialsInvalid();
|
|
@@ -57,17 +53,25 @@ class PasswordGrantType extends abstract_1.AbstractGrant {
|
|
|
57
53
|
}
|
|
58
54
|
return entity;
|
|
59
55
|
}
|
|
60
|
-
async
|
|
56
|
+
async verifyCredentialsWithLDAP(user, password, realmId) {
|
|
61
57
|
const dataSource = await (0, typeorm_extension_1.useDataSource)();
|
|
62
58
|
const repository = new domains_1.IdentityProviderRepository(dataSource);
|
|
63
59
|
const where = {
|
|
64
60
|
protocol: core_kit_1.IdentityProviderProtocol.LDAP,
|
|
65
61
|
};
|
|
66
62
|
if (realmId) {
|
|
67
|
-
|
|
63
|
+
if ((0, kit_1.isUUID)(realmId)) {
|
|
64
|
+
where.realm_id = realmId;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
where.realm = {
|
|
68
|
+
name: realmId,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
68
71
|
}
|
|
69
72
|
const entities = await repository.findManyWithEA({
|
|
70
73
|
where,
|
|
74
|
+
relations: ['realm'],
|
|
71
75
|
});
|
|
72
76
|
let manager;
|
|
73
77
|
let account;
|
|
@@ -80,12 +84,13 @@ class PasswordGrantType extends abstract_1.AbstractGrant {
|
|
|
80
84
|
const flow = new domains_2.LdapIdentityProviderFlow(entity);
|
|
81
85
|
try {
|
|
82
86
|
identity = await flow.getIdentityForCredentials(user, password);
|
|
83
|
-
await flow.unbind();
|
|
84
87
|
}
|
|
85
88
|
catch (e) {
|
|
86
|
-
await flow.unbind();
|
|
87
89
|
continue;
|
|
88
90
|
}
|
|
91
|
+
finally {
|
|
92
|
+
await flow.unbind();
|
|
93
|
+
}
|
|
89
94
|
manager = new services_1.IdentityProviderAccountService(dataSource, entity);
|
|
90
95
|
account = await manager.save(identity);
|
|
91
96
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password.js","sourceRoot":"","sources":["../../../../src/http/oauth2/grant-types/password.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;
|
|
1
|
+
{"version":3,"file":"password.js","sourceRoot":"","sources":["../../../../src/http/oauth2/grant-types/password.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { OAuth2SubKind } from '@authup/specs';
|
|
2
|
-
export declare function
|
|
2
|
+
export declare function resolveOAuth2SubAttributesForScopes(subKind: OAuth2SubKind | `${OAuth2SubKind}`, scope?: string | string[]): string[];
|
|
3
3
|
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../../src/http/oauth2/scope/resolve.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../../src/http/oauth2/scope/resolve.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,EAAqB,MAAM,eAAe,CAAC;AAejE,wBAAgB,mCAAmC,CAC/C,OAAO,EAAE,aAAa,GAAG,GAAG,aAAa,EAAE,EAC3C,KAAK,GAAE,MAAM,GAAG,MAAM,EAAO,GAC7B,MAAM,EAAE,CA4CX"}
|