thingsboard-aplcache

Merge pull request #46 from thingsboard/master Detect https

2/7/2017 6:33:47 AM

Details

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 ae91ea3..3aaa694 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 cd96b1d..3a0c401 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,