@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
JavaScript
;
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