Use x-forwarded-port header to detect base URL port.
This commit is contained in:
parent
efb03e4954
commit
d751ace71c
@ -124,14 +124,7 @@ public class AuthController extends BaseController {
|
|||||||
HttpServletRequest request) throws ThingsboardException {
|
HttpServletRequest request) throws ThingsboardException {
|
||||||
try {
|
try {
|
||||||
UserCredentials userCredentials = userService.requestPasswordReset(email);
|
UserCredentials userCredentials = userService.requestPasswordReset(email);
|
||||||
String scheme = request.getScheme();
|
String baseUrl = constructBaseUrl(request);
|
||||||
if (request.getHeader("x-forwarded-proto") != null) {
|
|
||||||
scheme = request.getHeader("x-forwarded-proto");
|
|
||||||
}
|
|
||||||
String baseUrl = String.format("%s://%s:%d",
|
|
||||||
scheme,
|
|
||||||
request.getServerName(),
|
|
||||||
request.getServerPort());
|
|
||||||
String resetPasswordUrl = String.format("%s/api/noauth/resetPassword?resetToken=%s", baseUrl,
|
String resetPasswordUrl = String.format("%s/api/noauth/resetPassword?resetToken=%s", baseUrl,
|
||||||
userCredentials.getResetToken());
|
userCredentials.getResetToken());
|
||||||
|
|
||||||
@ -175,14 +168,7 @@ public class AuthController extends BaseController {
|
|||||||
UserCredentials credentials = userService.activateUserCredentials(activateToken, encodedPassword);
|
UserCredentials credentials = userService.activateUserCredentials(activateToken, encodedPassword);
|
||||||
User user = userService.findUserById(credentials.getUserId());
|
User user = userService.findUserById(credentials.getUserId());
|
||||||
SecurityUser securityUser = new SecurityUser(user, credentials.isEnabled());
|
SecurityUser securityUser = new SecurityUser(user, credentials.isEnabled());
|
||||||
String scheme = request.getScheme();
|
String baseUrl = constructBaseUrl(request);
|
||||||
if (request.getHeader("x-forwarded-proto") != null) {
|
|
||||||
scheme = request.getHeader("x-forwarded-proto");
|
|
||||||
}
|
|
||||||
String baseUrl = String.format("%s://%s:%d",
|
|
||||||
scheme,
|
|
||||||
request.getServerName(),
|
|
||||||
request.getServerPort());
|
|
||||||
String loginUrl = String.format("%s/login", baseUrl);
|
String loginUrl = String.format("%s/login", baseUrl);
|
||||||
String email = user.getEmail();
|
String email = user.getEmail();
|
||||||
mailService.sendAccountActivatedEmail(loginUrl, email);
|
mailService.sendAccountActivatedEmail(loginUrl, email);
|
||||||
@ -216,14 +202,7 @@ public class AuthController extends BaseController {
|
|||||||
userCredentials = userService.saveUserCredentials(userCredentials);
|
userCredentials = userService.saveUserCredentials(userCredentials);
|
||||||
User user = userService.findUserById(userCredentials.getUserId());
|
User user = userService.findUserById(userCredentials.getUserId());
|
||||||
SecurityUser securityUser = new SecurityUser(user, userCredentials.isEnabled());
|
SecurityUser securityUser = new SecurityUser(user, userCredentials.isEnabled());
|
||||||
String scheme = request.getScheme();
|
String baseUrl = constructBaseUrl(request);
|
||||||
if (request.getHeader("x-forwarded-proto") != null) {
|
|
||||||
scheme = request.getHeader("x-forwarded-proto");
|
|
||||||
}
|
|
||||||
String baseUrl = String.format("%s://%s:%d",
|
|
||||||
scheme,
|
|
||||||
request.getServerName(),
|
|
||||||
request.getServerPort());
|
|
||||||
String loginUrl = String.format("%s/login", baseUrl);
|
String loginUrl = String.format("%s/login", baseUrl);
|
||||||
String email = user.getEmail();
|
String email = user.getEmail();
|
||||||
mailService.sendPasswordWasResetEmail(loginUrl, email);
|
mailService.sendPasswordWasResetEmail(loginUrl, email);
|
||||||
|
|||||||
@ -57,6 +57,7 @@ import org.thingsboard.server.service.component.ComponentDiscoveryService;
|
|||||||
import org.thingsboard.server.service.security.model.SecurityUser;
|
import org.thingsboard.server.service.security.model.SecurityUser;
|
||||||
|
|
||||||
import javax.mail.MessagingException;
|
import javax.mail.MessagingException;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
@ -381,4 +382,23 @@ public abstract class BaseController {
|
|||||||
checkTenantId(rule.getTenantId());
|
checkTenantId(rule.getTenantId());
|
||||||
return rule;
|
return rule;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected String constructBaseUrl(HttpServletRequest request) {
|
||||||
|
String scheme = request.getScheme();
|
||||||
|
if (request.getHeader("x-forwarded-proto") != null) {
|
||||||
|
scheme = request.getHeader("x-forwarded-proto");
|
||||||
|
}
|
||||||
|
int serverPort = request.getServerPort();
|
||||||
|
if (request.getHeader("x-forwarded-port") != null) {
|
||||||
|
try {
|
||||||
|
serverPort = request.getIntHeader("x-forwarded-port");
|
||||||
|
} catch (NumberFormatException e) {}
|
||||||
|
}
|
||||||
|
|
||||||
|
String baseUrl = String.format("%s://%s:%d",
|
||||||
|
scheme,
|
||||||
|
request.getServerName(),
|
||||||
|
serverPort);
|
||||||
|
return baseUrl;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -77,14 +77,7 @@ public class UserController extends BaseController {
|
|||||||
User savedUser = checkNotNull(userService.saveUser(user));
|
User savedUser = checkNotNull(userService.saveUser(user));
|
||||||
if (sendEmail) {
|
if (sendEmail) {
|
||||||
UserCredentials userCredentials = userService.findUserCredentialsByUserId(savedUser.getId());
|
UserCredentials userCredentials = userService.findUserCredentialsByUserId(savedUser.getId());
|
||||||
String scheme = request.getScheme();
|
String baseUrl = constructBaseUrl(request);
|
||||||
if (request.getHeader("x-forwarded-proto") != null) {
|
|
||||||
scheme = request.getHeader("x-forwarded-proto");
|
|
||||||
}
|
|
||||||
String baseUrl = String.format("%s://%s:%d",
|
|
||||||
scheme,
|
|
||||||
request.getServerName(),
|
|
||||||
request.getServerPort());
|
|
||||||
String activateUrl = String.format("%s/api/noauth/activate?activateToken=%s", baseUrl,
|
String activateUrl = String.format("%s/api/noauth/activate?activateToken=%s", baseUrl,
|
||||||
userCredentials.getActivateToken());
|
userCredentials.getActivateToken());
|
||||||
String email = savedUser.getEmail();
|
String email = savedUser.getEmail();
|
||||||
@ -111,14 +104,7 @@ public class UserController extends BaseController {
|
|||||||
User user = checkNotNull(userService.findUserByEmail(email));
|
User user = checkNotNull(userService.findUserByEmail(email));
|
||||||
UserCredentials userCredentials = userService.findUserCredentialsByUserId(user.getId());
|
UserCredentials userCredentials = userService.findUserCredentialsByUserId(user.getId());
|
||||||
if (!userCredentials.isEnabled()) {
|
if (!userCredentials.isEnabled()) {
|
||||||
String scheme = request.getScheme();
|
String baseUrl = constructBaseUrl(request);
|
||||||
if (request.getHeader("x-forwarded-proto") != null) {
|
|
||||||
scheme = request.getHeader("x-forwarded-proto");
|
|
||||||
}
|
|
||||||
String baseUrl = String.format("%s://%s:%d",
|
|
||||||
scheme,
|
|
||||||
request.getServerName(),
|
|
||||||
request.getServerPort());
|
|
||||||
String activateUrl = String.format("%s/api/noauth/activate?activateToken=%s", baseUrl,
|
String activateUrl = String.format("%s/api/noauth/activate?activateToken=%s", baseUrl,
|
||||||
userCredentials.getActivateToken());
|
userCredentials.getActivateToken());
|
||||||
mailService.sendActivationEmail(activateUrl, email);
|
mailService.sendActivationEmail(activateUrl, email);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user