UNPKG

@redocly/portal-plugin-gravitee-sso

Version:

Gravitee SSO plugin for @redocly/portal

40 lines 2.07 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import { LOGIN_PAGE_SLUG } from './constants.js'; import { isGraviteeSsoConfig } from './is-gravitee-sso-config.js'; export default function (ctx, store) { return __awaiter(this, void 0, void 0, function* () { var _a; const logger = ctx.get('logger'); const parsedUrl = new URL(ctx.req.url); const idpId = parsedUrl.searchParams.get('idpId'); if (!idpId) { logger.error('Gravitee SSO: idpId query parameter not found'); return ctx.text('Forbidden', 403); } const idpConfig = (_a = store.getConfig().ssoDirect) === null || _a === void 0 ? void 0 : _a[idpId]; if (!isGraviteeSsoConfig(idpConfig)) { logger.error(`Gravitee SSO: invalid idpId in query params: ${idpId}`); return ctx.text('Forbidden', 403); } logger.info('Gravitee login initiated'); const redirectTo = parsedUrl.searchParams.get('redirectTo') || '/'; const localePrefix = parsedUrl.searchParams.get('localePrefix') || ''; const loginQueryParams = new URLSearchParams({ redirectTo, idpId, }); const loginPageUrl = `${localePrefix}${LOGIN_PAGE_SLUG}?${loginQueryParams.toString()}`; return ctx.newResponse(null, 302, { Location: loginPageUrl, }); }); } //# sourceMappingURL=handle-initiate-login.js.map