diff --git a/application/src/main/java/org/thingsboard/server/controller/AuthController.java b/application/src/main/java/org/thingsboard/server/controller/AuthController.java index ae91ea3223..3aaa6949ea 100644 --- a/application/src/main/java/org/thingsboard/server/controller/AuthController.java +++ b/application/src/main/java/org/thingsboard/server/controller/AuthController.java @@ -124,9 +124,12 @@ public class AuthController extends BaseController { HttpServletRequest request) throws ThingsboardException { try { UserCredentials userCredentials = userService.requestPasswordReset(email); - + String scheme = request.getScheme(); + if (request.getHeader("x-forwarded-proto") != null) { + scheme = request.getHeader("x-forwarded-proto"); + } String baseUrl = String.format("%s://%s:%d", - request.getScheme(), + scheme, request.getServerName(), request.getServerPort()); String resetPasswordUrl = String.format("%s/api/noauth/resetPassword?resetToken=%s", baseUrl, @@ -172,8 +175,12 @@ public class AuthController extends BaseController { UserCredentials credentials = userService.activateUserCredentials(activateToken, encodedPassword); User user = userService.findUserById(credentials.getUserId()); SecurityUser securityUser = new SecurityUser(user, credentials.isEnabled()); + String scheme = request.getScheme(); + if (request.getHeader("x-forwarded-proto") != null) { + scheme = request.getHeader("x-forwarded-proto"); + } String baseUrl = String.format("%s://%s:%d", - request.getScheme(), + scheme, request.getServerName(), request.getServerPort()); String loginUrl = String.format("%s/login", baseUrl); @@ -209,8 +216,12 @@ public class AuthController extends BaseController { userCredentials = userService.saveUserCredentials(userCredentials); User user = userService.findUserById(userCredentials.getUserId()); SecurityUser securityUser = new SecurityUser(user, userCredentials.isEnabled()); + String scheme = request.getScheme(); + if (request.getHeader("x-forwarded-proto") != null) { + scheme = request.getHeader("x-forwarded-proto"); + } String baseUrl = String.format("%s://%s:%d", - request.getScheme(), + scheme, request.getServerName(), request.getServerPort()); String loginUrl = String.format("%s/login", baseUrl); diff --git a/application/src/main/java/org/thingsboard/server/controller/UserController.java b/application/src/main/java/org/thingsboard/server/controller/UserController.java index cd96b1dd43..3a0c401673 100644 --- a/application/src/main/java/org/thingsboard/server/controller/UserController.java +++ b/application/src/main/java/org/thingsboard/server/controller/UserController.java @@ -77,8 +77,12 @@ public class UserController extends BaseController { User savedUser = checkNotNull(userService.saveUser(user)); if (sendEmail) { UserCredentials userCredentials = userService.findUserCredentialsByUserId(savedUser.getId()); + String scheme = request.getScheme(); + if (request.getHeader("x-forwarded-proto") != null) { + scheme = request.getHeader("x-forwarded-proto"); + } String baseUrl = String.format("%s://%s:%d", - request.getScheme(), + scheme, request.getServerName(), request.getServerPort()); String activateUrl = String.format("%s/api/noauth/activate?activateToken=%s", baseUrl, @@ -107,8 +111,12 @@ public class UserController extends BaseController { User user = checkNotNull(userService.findUserByEmail(email)); UserCredentials userCredentials = userService.findUserCredentialsByUserId(user.getId()); if (!userCredentials.isEnabled()) { + String scheme = request.getScheme(); + if (request.getHeader("x-forwarded-proto") != null) { + scheme = request.getHeader("x-forwarded-proto"); + } String baseUrl = String.format("%s://%s:%d", - request.getScheme(), + scheme, request.getServerName(), request.getServerPort()); String activateUrl = String.format("%s/api/noauth/activate?activateToken=%s", baseUrl,