1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
Jari Kolehmainen 2020-09-16 19:16:19 +03:00
parent ae6771cbc5
commit 4e57ea731a

View File

@ -4,11 +4,11 @@ import spdy from "spdy";
import httpProxy from "http-proxy"; import httpProxy from "http-proxy";
import url from "url"; import url from "url";
import * as WebSocket from "ws" import * as WebSocket from "ws"
import { apiPrefix, apiKubePrefix } from "../common/vars"
import { openShell } from "./node-shell-session"; import { openShell } from "./node-shell-session";
import { Router } from "./router" import { Router } from "./router"
import { ClusterManager } from "./cluster-manager" import { ClusterManager } from "./cluster-manager"
import { ContextHandler } from "./context-handler"; import { ContextHandler } from "./context-handler";
import { apiKubePrefix } from "../common/vars";
import logger from "./logger" import logger from "./logger"
export class LensProxy { export class LensProxy {
@ -52,7 +52,7 @@ export class LensProxy {
this.handleRequest(proxy, req, res) this.handleRequest(proxy, req, res)
}) })
spdyProxy.on("upgrade", (req: http.IncomingMessage, socket: net.Socket, head: Buffer) => { spdyProxy.on("upgrade", (req: http.IncomingMessage, socket: net.Socket, head: Buffer) => {
if (req.url.startsWith("/api?")) { if (req.url.startsWith(`${apiPrefix}/?`)) {
this.handleWsUpgrade(req, socket, head) this.handleWsUpgrade(req, socket, head)
} else { } else {
if (req.headers.upgrade?.startsWith("SPDY")) { if (req.headers.upgrade?.startsWith("SPDY")) {
@ -71,7 +71,7 @@ export class LensProxy {
protected async handleSpdyProxy(proxy: httpProxy, req: http.IncomingMessage, socket: net.Socket, head: Buffer) { protected async handleSpdyProxy(proxy: httpProxy, req: http.IncomingMessage, socket: net.Socket, head: Buffer) {
const cluster = this.clusterManager.getClusterForRequest(req) const cluster = this.clusterManager.getClusterForRequest(req)
if (cluster) { if (cluster) {
const proxyUrl = await cluster.contextHandler.resolveAuthProxyUrl() + req.url.replace("/api-kube", "") const proxyUrl = await cluster.contextHandler.resolveAuthProxyUrl() + req.url.replace(apiKubePrefix, "")
const apiUrl = url.parse(cluster.apiUrl) const apiUrl = url.parse(cluster.apiUrl)
const res = new http.ServerResponse(req) const res = new http.ServerResponse(req)
res.assignSocket(socket) res.assignSocket(socket)