From 201fdbf7b8d6484ff2602ff47eba04da68746017 Mon Sep 17 00:00:00 2001 From: Tudor Stanciu Date: Thu, 23 Mar 2023 00:25:21 +0200 Subject: [PATCH] [1.4.10] Display UpstreamScheme option --- package-lock.json | 2 +- package.json | 2 +- public/locales/en/translations.json | 4 +++ public/locales/ro/translations.json | 4 +++ .../ForwardOptionsAdvancedComponent.js | 7 +++++ .../upstreamScheme/UpstreamSchemeCard.js | 26 +++++++++++++++++++ .../upstreamScheme/UpstreamSchemeSummary.js | 24 +++++++++++++++++ .../simple/ForwardOptionsComponent.js | 5 ++++ 8 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 src/features/forwards/options/components/advanced/upstreamScheme/UpstreamSchemeCard.js create mode 100644 src/features/forwards/options/components/advanced/upstreamScheme/UpstreamSchemeSummary.js diff --git a/package-lock.json b/package-lock.json index 214691a..b22efee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "reverse-proxy-frontend", - "version": "1.4.9", + "version": "1.4.10", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index abf3d07..d3392f1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "reverse-proxy-frontend", - "version": "1.4.9", + "version": "1.4.10", "private": true, "description": "Reverse proxy frontend application", "author": { diff --git a/public/locales/en/translations.json b/public/locales/en/translations.json index 5e1f09d..ace3e01 100644 --- a/public/locales/en/translations.json +++ b/public/locales/en/translations.json @@ -57,6 +57,10 @@ "Label": "Trailing slash", "Tooltip": "A trailing slash is the forward slash placed at the end of a URL. The trailing slash is generally used to mark a directory, and if a URL is not terminated using a trailing slash, this generally points to a file." }, + "UpstreamScheme": { + "Label": "Upstream scheme", + "Tooltip": "UpstreamScheme option will force the reverse proxy to set on the HttpRequest the scheme found in the headers 'X-Forwarded-Scheme' or 'X-Forwarded-Proto'." + }, "PathOverwrite": { "Label": "Path overwrite", "Tooltip": "Option by which the base path of the application is automatically overwritten in all http text responses received from it." diff --git a/public/locales/ro/translations.json b/public/locales/ro/translations.json index 37d84a3..ff120ac 100644 --- a/public/locales/ro/translations.json +++ b/public/locales/ro/translations.json @@ -48,6 +48,10 @@ "Label": "Trailing slash", "Tooltip": "Bara oblică plasată la sfarșitul unei adrese URL. Slash-ul final este de obicei utilizat pentru a marca un director și dacă o adresă URL nu este încheiată folosind o bară oblică, aceasta indică în general un fișier." }, + "UpstreamScheme": { + "Label": "Upstream scheme", + "Tooltip": "Opțiunea UpstreamScheme va forța proxy-ul invers să seteze pe HttpRequest schema găsită în anteturile 'X-Forwarded-Scheme' sau 'X-Forwarded-Proto'." + }, "PathOverwrite": { "Label": "Path overwrite", "Tooltip": "Opțiune prin care calea de bază a aplicației este suprascrisă automat în toate răspunsurile de text http primite de la aceasta." diff --git a/src/features/forwards/options/components/advanced/ForwardOptionsAdvancedComponent.js b/src/features/forwards/options/components/advanced/ForwardOptionsAdvancedComponent.js index 91d1418..e50b990 100644 --- a/src/features/forwards/options/components/advanced/ForwardOptionsAdvancedComponent.js +++ b/src/features/forwards/options/components/advanced/ForwardOptionsAdvancedComponent.js @@ -5,6 +5,7 @@ import PathOverwriteCard from "./pathOverwrite/PathOverwriteCard"; import PathInjectionCard from "./pathInjection/PathInjectionCard"; import KeyOverwriteCard from "./keyOverwrite/KeyOverwriteCard"; import SpecificHeadersCard from "./specificHeaders/SpecificHeadersCard"; +import UpstreamSchemeCard from "./upstreamScheme/UpstreamSchemeCard"; const ForwardOptionsAdvancedComponent = ({ options }) => { return ( @@ -39,6 +40,12 @@ const ForwardOptionsAdvancedComponent = ({ options }) => {
)} + {options.upstreamScheme && ( + <> + +
+ + )} ); }; diff --git a/src/features/forwards/options/components/advanced/upstreamScheme/UpstreamSchemeCard.js b/src/features/forwards/options/components/advanced/upstreamScheme/UpstreamSchemeCard.js new file mode 100644 index 0000000..ba9ca9e --- /dev/null +++ b/src/features/forwards/options/components/advanced/upstreamScheme/UpstreamSchemeCard.js @@ -0,0 +1,26 @@ +import React from "react"; +import PropTypes from "prop-types"; +import ExpandableCard from "../../../../../../components/common/ExpandableCard"; +import { useTranslation } from "react-i18next"; +import UpstreamSchemeSummary from "./UpstreamSchemeSummary"; +import FlipToFrontIcon from "@material-ui/icons/FlipToFront"; + +const UpstreamSchemeCard = ({ enabled }) => { + const { t } = useTranslation(); + + return ( + } + title={t("Forward.Options.UpstreamScheme.Label")} + subtitle={t("Forward.Options.UpstreamScheme.Tooltip")} + Summary={} + Content={
...
} + /> + ); +}; + +UpstreamSchemeCard.propTypes = { + enabled: PropTypes.bool.isRequired +}; + +export default UpstreamSchemeCard; diff --git a/src/features/forwards/options/components/advanced/upstreamScheme/UpstreamSchemeSummary.js b/src/features/forwards/options/components/advanced/upstreamScheme/UpstreamSchemeSummary.js new file mode 100644 index 0000000..3e8da31 --- /dev/null +++ b/src/features/forwards/options/components/advanced/upstreamScheme/UpstreamSchemeSummary.js @@ -0,0 +1,24 @@ +import React from "react"; +import PropTypes from "prop-types"; +import { Grid } from "@material-ui/core"; +import { useTranslation } from "react-i18next"; +import ActiveIcon from "../../../../../../components/common/ActiveIcon"; + +const UpstreamSchemeSummary = ({ enabled }) => { + const { t } = useTranslation(); + + return ( + + + {`${t("General.Enabled")}: `} + + + + ); +}; + +UpstreamSchemeSummary.propTypes = { + enabled: PropTypes.bool.isRequired +}; + +export default UpstreamSchemeSummary; diff --git a/src/features/forwards/options/components/simple/ForwardOptionsComponent.js b/src/features/forwards/options/components/simple/ForwardOptionsComponent.js index ab9bf6e..2329f03 100644 --- a/src/features/forwards/options/components/simple/ForwardOptionsComponent.js +++ b/src/features/forwards/options/components/simple/ForwardOptionsComponent.js @@ -53,6 +53,11 @@ const ForwardOptionsComponent = ({ title, options }) => { label: "Forward.Options.SpecificHeaders.Label", tooltip: "Forward.Options.SpecificHeaders.Tooltip", active: options.specificHeaders?.on + }, + { + label: "Forward.Options.UpstreamScheme.Label", + tooltip: "Forward.Options.UpstreamScheme.Tooltip", + active: options.upstreamScheme } ], [options]