From 31f7d9a64390bf08c80387878dedd23c01c52d8d Mon Sep 17 00:00:00 2001 From: undefined Date: Wed, 21 Apr 2021 22:42:52 +0800 Subject: [PATCH] core: add xhost config --- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/interface.ts | 1 + packages/hydrooj/src/model/setting.ts | 1 + packages/hydrooj/src/service/server.ts | 3 ++- 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 09c5c7a3f..2e7bc3027 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.23.14", + "version": "2.23.15", "bin": "bin/hydrooj.js", "main": "dist/loader.js", "typings": "dist/loader.d.ts", diff --git a/packages/hydrooj/src/interface.ts b/packages/hydrooj/src/interface.ts index 53cf702fc..3105ac2bb 100644 --- a/packages/hydrooj/src/interface.ts +++ b/packages/hydrooj/src/interface.ts @@ -31,6 +31,7 @@ export interface SystemKeys { 'server.name': string, 'server.url': string, 'server.xff': string, + 'server.xhost': string, 'server.worker': number, 'server.port': number, 'server.language': string, diff --git a/packages/hydrooj/src/model/setting.ts b/packages/hydrooj/src/model/setting.ts index 8e30e7be1..2d65a7201 100644 --- a/packages/hydrooj/src/model/setting.ts +++ b/packages/hydrooj/src/model/setting.ts @@ -159,6 +159,7 @@ SystemSetting( Setting('setting_server', 'server.cdn', '/', 'text', 'server.cdn', 'CDN Prefix'), Setting('setting_server', 'server.port', 8888, 'number', 'server.port', 'Server Port'), Setting('setting_server', 'server.xff', null, 'text', 'server.xff', 'IP Header'), + Setting('setting_server', 'server.xhost', null, 'text', 'server.xhost', 'Hostname Header'), Setting('setting_server', 'server.language', 'zh_CN', langRange, 'server.language', 'Default display language'), Setting('setting_server', 'server.login', true, 'boolean', 'server.login', 'Allow builtin-login'), Setting('setting_basic', 'default.priv', builtin.PRIV.PRIV_DEFAULT, 'number', 'default.priv', 'Default Privilege'), diff --git a/packages/hydrooj/src/service/server.ts b/packages/hydrooj/src/service/server.ts index 48cd8ebda..a985a730f 100644 --- a/packages/hydrooj/src/service/server.ts +++ b/packages/hydrooj/src/service/server.ts @@ -443,8 +443,9 @@ export class Handler extends HandlerCommon { this.UiContext = cloneDeep(UiContextBase); this.UiContext.cdn_prefix = system.get('server.cdn'); this.session = {}; - const xff = system.get('server.xff'); + const [xff, xhost] = system.getMany(['server.xff', 'server.xhost']); if (xff) this.request.ip = this.request.headers[xff.toLowerCase()] || this.request.ip; + if (xhost) this.request.hostname = this.request.headers[xhost.toLowerCase()] || this.request.hostname; this.noCheckPermView = true; }