snapshot of https://github.com/ory/kratos.git (master, 2026-09-15; blobs > 131072B omitted)
Some checks failed
CI / Run tests and lints (push) Failing after 29s
CI / Build CLI docs (push) Has been skipped
CI / Run Playwright end-to-end tests (mysql) (push) Failing after 3s
CI / Run Playwright end-to-end tests (postgres) (push) Failing after 2s
CI / Run Playwright end-to-end tests (sqlite) (push) Failing after 3s
CodeQL / Analyze (go) (push) Failing after 4s
CodeQL / Analyze (javascript) (push) Failing after 3s
Docker Image Scanners / scanners (push) Failing after 4s
Synchronize Issue Labels / Synchronize Issue Labels (push) Has been skipped
CI / Run end-to-end tests (postgres) (push) Failing after 19s
CI / Run end-to-end tests (sqlite) (push) Failing after 2s
CI / Run Playwright end-to-end tests (cockroach) (push) Failing after 2s
CI / Draft newsletter (push) Has been skipped
CI / Generate release (push) Has been skipped
CI / Pending approval Slack notification (push) Has been skipped
CI / Send newsletter (push) Has been skipped
Some checks failed
CI / Run tests and lints (push) Failing after 29s
CI / Build CLI docs (push) Has been skipped
CI / Run Playwright end-to-end tests (mysql) (push) Failing after 3s
CI / Run Playwright end-to-end tests (postgres) (push) Failing after 2s
CI / Run Playwright end-to-end tests (sqlite) (push) Failing after 3s
CodeQL / Analyze (go) (push) Failing after 4s
CodeQL / Analyze (javascript) (push) Failing after 3s
Docker Image Scanners / scanners (push) Failing after 4s
Synchronize Issue Labels / Synchronize Issue Labels (push) Has been skipped
CI / Run end-to-end tests (postgres) (push) Failing after 19s
CI / Run end-to-end tests (sqlite) (push) Failing after 2s
CI / Run Playwright end-to-end tests (cockroach) (push) Failing after 2s
CI / Draft newsletter (push) Has been skipped
CI / Generate release (push) Has been skipped
CI / Pending approval Slack notification (push) Has been skipped
CI / Send newsletter (push) Has been skipped
This commit is contained in:
54
test/e2e/proxy/proxy.js
Normal file
54
test/e2e/proxy/proxy.js
Normal file
@@ -0,0 +1,54 @@
|
||||
// Copyright © 2023 Ory Corp
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import request from "request"
|
||||
import { resolve } from "path"
|
||||
import urljoin from "url-join"
|
||||
import express from "express"
|
||||
import fs from "fs"
|
||||
|
||||
const app = express()
|
||||
|
||||
const proxy =
|
||||
(base, prefix = null) =>
|
||||
(req, res, next) => {
|
||||
let url = urljoin(base, req.url)
|
||||
|
||||
// we need to tell Krato we are behind a reverse proxy
|
||||
req.headers["x-forwarded-host"] = req.get("host")
|
||||
|
||||
if (prefix) {
|
||||
url = urljoin(base, prefix, req.url)
|
||||
}
|
||||
req
|
||||
.pipe(request(url, { followRedirect: false }).on("error", next))
|
||||
.pipe(res)
|
||||
}
|
||||
|
||||
app.use(
|
||||
"/self-service/",
|
||||
proxy(process.env.KRATOS_PUBLIC_URL, "/self-service/"),
|
||||
)
|
||||
app.use("/schemas/", proxy(process.env.KRATOS_PUBLIC_URL, "/schemas/"))
|
||||
app.use("/.well-known/", proxy(process.env.KRATOS_PUBLIC_URL, "/.well-known/"))
|
||||
|
||||
app.use("/", (req, res, next) => {
|
||||
const pc = JSON.parse(fs.readFileSync(resolve("../proxy.json")).toString())
|
||||
switch (pc) {
|
||||
case "react":
|
||||
proxy(process.env.KRATOS_UI_REACT_URL)(req, res, next)
|
||||
return
|
||||
case "react-native":
|
||||
proxy(process.env.KRATOS_UI_REACT_NATIVE_URL)(req, res, next)
|
||||
return
|
||||
}
|
||||
proxy(process.env.KRATOS_UI_URL)(req, res, next)
|
||||
})
|
||||
|
||||
const port = parseInt(process.env.PORT) || 4455
|
||||
|
||||
let listener = () => {
|
||||
console.log(`Listening on http://0.0.0.0:${port}`)
|
||||
}
|
||||
|
||||
app.listen(port, "0.0.0.0", listener)
|
||||
Reference in New Issue
Block a user