public setupRoutes()

in server/auth/types/proxy/routes.ts [33:86]


  public setupRoutes() {
    this.router.get(
      {
        path: `/auth/proxy/login`,
        validate: {
          query: schema.object({
            nextUrl: schema.maybe(
              schema.string({
                validate: validateNextUrl,
              })
            ),
          }),
        },
        options: {
          // TODO: set to false?
          authRequired: 'optional',
        },
      },
      async (context, request, response) => {
        if (request.auth.isAuthenticated) {
          const nextUrl =
            request.query.nextUrl ||
            `${this.coreSetup.http.basePath.serverBasePath}/app/opensearch-dashboards`;
          response.redirected({
            headers: {
              location: nextUrl,
            },
          });
        }

        const loginEndpoint = this.config.proxycache?.login_endpoint;
        if (loginEndpoint) {
          return response.redirected({
            headers: {
              location: loginEndpoint,
            },
          });
        } else {
          return response.badRequest();
        }
      }
    );

    this.router.post(
      {
        path: `/auth/proxy/logout`,
        validate: false,
      },
      async (context, request, response) => {
        this.sessionStorageFactory.asScoped(request).clear();
        return response.ok();
      }
    );
  }