From 46c7862258e0cea1b39a6a462914d4d6d634bdae Mon Sep 17 00:00:00 2001 From: YevhenBondarenko Date: Wed, 6 Nov 2019 17:14:33 +0200 Subject: [PATCH] Activation Link(added logic if x-forwarded-proto is set but x-forwarded-port not set, set port to 80 or 443) --- .../server/controller/BaseController.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/controller/BaseController.java b/application/src/main/java/org/thingsboard/server/controller/BaseController.java index 3fc809c424..77a9d3ad0f 100644 --- a/application/src/main/java/org/thingsboard/server/controller/BaseController.java +++ b/application/src/main/java/org/thingsboard/server/controller/BaseController.java @@ -516,15 +516,27 @@ public abstract class BaseController { protected String constructBaseUrl(HttpServletRequest request) { String scheme = request.getScheme(); - if (request.getHeader("x-forwarded-proto") != null) { - scheme = request.getHeader("x-forwarded-proto"); + + String forwardedProto = request.getHeader("x-forwarded-proto"); + if (forwardedProto != null) { + scheme = forwardedProto; } + int serverPort = request.getServerPort(); if (request.getHeader("x-forwarded-port") != null) { try { serverPort = request.getIntHeader("x-forwarded-port"); } catch (NumberFormatException e) { } + } else if (forwardedProto != null) { + switch (forwardedProto) { + case "http": + serverPort = 80; + break; + case "https": + serverPort = 443; + break; + } } String baseUrl = String.format("%s://%s:%d",