UNPKG

@immobiliarelabs/backstage-plugin-ldap-auth-backend

Version:

Backstage LDAP Authentication plugin, this packages adds backend authentication and token generation/validation/management; sibling of @immobiliarelabs/backstage-plugin-ldap-auth

99 lines (92 loc) 3.07 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var backendPluginApi = require('@backstage/backend-plugin-api'); var pluginAuthNode = require('@backstage/plugin-auth-node'); var Keyv = require('keyv'); var jwt = require('./jwt.cjs.js'); var provider = require('./provider.cjs.js'); function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; } var Keyv__default = /*#__PURE__*/_interopDefaultCompat(Keyv); class LdapAuthExt { #authHandler; #resolvers; #signInResolver; #tokenValidatorExt; set(opt) { this.#authHandler = opt.authHandler; this.#resolvers = opt.resolvers; this.#signInResolver = opt.signIn; this.#tokenValidatorExt = opt.tokenValidator; } get authHandler() { return this.#authHandler; } get resolvers() { return this.#resolvers; } get signInResolver() { return this.#signInResolver; } get tokenValidatorExt() { return this.#tokenValidatorExt; } } const ldapAuthExtensionPoint = backendPluginApi.createExtensionPoint({ id: "ldap-auth-extension" }); const tokenValidatorRef = backendPluginApi.createServiceRef({ scope: "plugin", id: "token-validator", defaultFactory: async (service) => backendPluginApi.createServiceFactory({ service, deps: { config: backendPluginApi.coreServices.rootConfig }, factory({}) { return new jwt.JWTTokenValidator(new Keyv__default.default()); } }) }); const tokenValidatorFactoryWithOptions = (options) => backendPluginApi.createServiceFactory({ service: tokenValidatorRef, deps: { config: backendPluginApi.coreServices.rootConfig }, factory({ config }) { return options?.createTokenValidator(config) || new jwt.JWTTokenValidator(new Keyv__default.default()); } }); const tokenValidatorFactory = Object.assign( tokenValidatorFactoryWithOptions, tokenValidatorFactoryWithOptions() ); var alpha = backendPluginApi.createBackendModule({ pluginId: "auth", moduleId: "ldap", register(reg) { const ldapAuthSetter = new LdapAuthExt(); reg.registerExtensionPoint( ldapAuthExtensionPoint, ldapAuthSetter ); reg.registerInit({ deps: { providers: pluginAuthNode.authProvidersExtensionPoint, tokenValidator: tokenValidatorRef }, async init({ providers, tokenValidator }) { providers.registerProvider({ providerId: "ldap", factory: (deps) => provider.ldap.create({ tokenValidator: ldapAuthSetter.tokenValidatorExt || tokenValidator, authHandler: ldapAuthSetter.authHandler, resolvers: ldapAuthSetter.resolvers, signIn: ldapAuthSetter.signInResolver })(deps) }); } }); } }); exports.default = alpha; exports.ldapAuthExtensionPoint = ldapAuthExtensionPoint; exports.tokenValidatorFactory = tokenValidatorFactory; exports.tokenValidatorFactoryWithOptions = tokenValidatorFactoryWithOptions; exports.tokenValidatorRef = tokenValidatorRef; //# sourceMappingURL=alpha.cjs.js.map