Fix Url For Email Verification etc (#8904)

* Fix Url For Email Verification etc

* yaml fix
This commit is contained in:
Mohit Yadav 2022-11-21 14:31:05 +05:30 committed by GitHub
parent c48c8dcea9
commit 8e57787ad4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 23 additions and 10 deletions

View File

@ -156,9 +156,8 @@ public class BasicAuthenticator implements AuthenticatorHandler {
LOG.info("Generated Email verification token [" + mailVerificationToken + "]");
String emailVerificationLink =
String.format(
"%s://%s/users/registrationConfirmation?user=%s&token=%s",
uriInfo.getRequestUri().getScheme(),
uriInfo.getRequestUri().getHost(),
"%s/users/registrationConfirmation?user=%s&token=%s",
EmailUtil.getInstance().buildBaseUrl(uriInfo.getRequestUri()),
user.getFullyQualifiedName(),
mailVerificationToken);
try {
@ -180,9 +179,8 @@ public class BasicAuthenticator implements AuthenticatorHandler {
LOG.info("Generated Password Reset verification token [" + mailVerificationToken + "]");
String passwordResetLink =
String.format(
"%s://%s/users/password/reset?user=%s&token=%s",
uriInfo.getRequestUri().getScheme(),
uriInfo.getRequestUri().getHost(),
"%s/users/password/reset?user=%s&token=%s",
EmailUtil.getInstance().buildBaseUrl(uriInfo.getRequestUri()),
user.getFullyQualifiedName(),
mailVerificationToken);
try {

View File

@ -10,9 +10,11 @@ import freemarker.template.Template;
import freemarker.template.TemplateException;
import java.io.IOException;
import java.io.StringWriter;
import java.net.URI;
import java.util.HashMap;
import java.util.Map;
import lombok.extern.slf4j.Slf4j;
import org.openmetadata.common.utils.CommonUtil;
import org.openmetadata.schema.email.EmailRequest;
import org.openmetadata.schema.email.SmtpSettings;
import org.openmetadata.schema.entity.feed.Thread;
@ -278,6 +280,19 @@ public class EmailUtil {
}
}
public String buildBaseUrl(URI uri) {
try {
if (CommonUtil.nullOrEmpty(this.defaultSmtpSettings.getOpenMetadataUrl())) {
return String.format("%s://%s", uri.getScheme(), uri.getHost());
} else {
URI serverUrl = new URI(this.defaultSmtpSettings.getOpenMetadataUrl());
return String.format("%s://%s", serverUrl.getScheme(), serverUrl.getHost());
}
} catch (Exception ex) {
throw new IllegalArgumentException("Missing URI info from URI and SMTP settings.");
}
}
public void testConnection() {
mailer.testConnection();
}

View File

@ -171,7 +171,7 @@ public class NotificationHandler {
user.getName(),
user.getEmail(),
String.format(
"%s://%s/users/%s/tasks", urlInstance.getScheme(), urlInstance.getHost(), user.getName()),
"%s/users/%s/tasks", EmailUtil.getInstance().buildBaseUrl(urlInstance), user.getName()),
thread,
EmailUtil.getInstance().getTaskAssignmentSubject(),
EmailUtil.TASK_NOTIFICATION_TEMPLATE);
@ -252,8 +252,8 @@ public class NotificationHandler {
URI urlInstance = testCase.getHref();
String testLinkUrl =
String.format(
"%s://%s/table/%s/activity_feed",
urlInstance.getScheme(), urlInstance.getHost(), testCase.getEntityFQN());
"%s/table/%s/activity_feed",
EmailUtil.getInstance().buildBaseUrl(urlInstance), testCase.getEntityFQN());
try {
EmailUtil.getInstance()
.sendTestResultEmailNotificationToUser(

View File

@ -52,5 +52,5 @@
}
},
"additionalProperties": false,
"required": ["serverEndpoint", "serverPort", "username", "password", "senderMail"]
"required": ["serverEndpoint", "serverPort", "username", "password", "senderMail", "openMetadataUrl"]
}