mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
More improvements to the email sending functionality
This commit is contained in:
parent
535c74a962
commit
0b31042aa2
@ -19,11 +19,14 @@ package org.wso2.carbon.device.mgt.core.email;
|
|||||||
|
|
||||||
public final class EmailConstants {
|
public final class EmailConstants {
|
||||||
|
|
||||||
public static final String DOMAIN = "domain-name";
|
|
||||||
public static final String USERNAME = "user-name";
|
|
||||||
public static final String DOWNLOAD_URL = "download-url";
|
|
||||||
public static final String ENCODED_SCHEME = "UTF-8";
|
public static final String ENCODED_SCHEME = "UTF-8";
|
||||||
public static final String PASSWORD = "password";
|
|
||||||
public static final String FIRST_NAME = "first-name";
|
public static final String FIRST_NAME = "first-name";
|
||||||
|
public static final String USERNAME = "username";
|
||||||
|
public static final String PASSWORD = "password";
|
||||||
|
public static final String DOMAIN = "domain-name";
|
||||||
|
|
||||||
|
public static final String SERVER_BASE_URL_HTTPS = "base-url-https";
|
||||||
|
public static final String SERVER_BASE_URL_HTTP = "base-url-http";
|
||||||
|
public static final String DOWNLOAD_URL = "download-url";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,65 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.wso2.carbon.device.mgt.core.email;
|
||||||
|
|
||||||
|
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
|
||||||
|
import org.wso2.carbon.utils.CarbonUtils;
|
||||||
|
import org.wso2.carbon.utils.ConfigurationContextService;
|
||||||
|
import org.wso2.carbon.utils.NetworkUtils;
|
||||||
|
|
||||||
|
public class EmailUtil {
|
||||||
|
|
||||||
|
public static String getServerBaseHttpsUrl() {
|
||||||
|
String hostName = "localhost";
|
||||||
|
try {
|
||||||
|
hostName = NetworkUtils.getMgtHostName();
|
||||||
|
} catch (Exception ignored) {
|
||||||
|
}
|
||||||
|
String mgtConsoleTransport = CarbonUtils.getManagementTransport();
|
||||||
|
ConfigurationContextService configContextService =
|
||||||
|
DeviceManagementDataHolder.getInstance().getConfigurationContextService();
|
||||||
|
int port = CarbonUtils.getTransportPort(configContextService, mgtConsoleTransport);
|
||||||
|
int httpsProxyPort =
|
||||||
|
CarbonUtils.getTransportProxyPort(configContextService.getServerConfigContext(),
|
||||||
|
mgtConsoleTransport);
|
||||||
|
if (httpsProxyPort > 0) {
|
||||||
|
port = httpsProxyPort;
|
||||||
|
}
|
||||||
|
return "https://" + hostName + ":" + port;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getServerBaseHttpUrl() {
|
||||||
|
String hostName = "localhost";
|
||||||
|
try {
|
||||||
|
hostName = NetworkUtils.getMgtHostName();
|
||||||
|
} catch (Exception ignored) {
|
||||||
|
}
|
||||||
|
ConfigurationContextService configContextService =
|
||||||
|
DeviceManagementDataHolder.getInstance().getConfigurationContextService();
|
||||||
|
int port = CarbonUtils.getTransportPort(configContextService, "http");
|
||||||
|
int httpProxyPort =
|
||||||
|
CarbonUtils.getTransportProxyPort(configContextService.getServerConfigContext(),
|
||||||
|
"http");
|
||||||
|
if (httpProxyPort > 0) {
|
||||||
|
port = httpProxyPort;
|
||||||
|
}
|
||||||
|
return "http://" + hostName + ":" + port;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -18,7 +18,6 @@
|
|||||||
|
|
||||||
package org.wso2.carbon.device.mgt.core.email.sender;
|
package org.wso2.carbon.device.mgt.core.email.sender;
|
||||||
|
|
||||||
import org.apache.axiom.om.OMAbstractFactory;
|
|
||||||
import org.apache.axiom.om.OMElement;
|
import org.apache.axiom.om.OMElement;
|
||||||
import org.apache.axiom.om.impl.llom.util.AXIOMUtil;
|
import org.apache.axiom.om.impl.llom.util.AXIOMUtil;
|
||||||
import org.apache.axis2.AxisFault;
|
import org.apache.axis2.AxisFault;
|
||||||
@ -28,7 +27,6 @@ import org.apache.axis2.client.Options;
|
|||||||
import org.apache.axis2.client.ServiceClient;
|
import org.apache.axis2.client.ServiceClient;
|
||||||
import org.apache.axis2.context.ConfigurationContext;
|
import org.apache.axis2.context.ConfigurationContext;
|
||||||
import org.apache.axis2.context.MessageContext;
|
import org.apache.axis2.context.MessageContext;
|
||||||
import org.apache.axis2.transport.base.BaseConstants;
|
|
||||||
import org.apache.axis2.transport.mail.MailConstants;
|
import org.apache.axis2.transport.mail.MailConstants;
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
|||||||
@ -522,6 +522,10 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
params.put(EmailConstants.DOWNLOAD_URL,
|
params.put(EmailConstants.DOWNLOAD_URL,
|
||||||
new TypedValue<Class<?>, Object>(String.class,
|
new TypedValue<Class<?>, Object>(String.class,
|
||||||
emailConfig.getlBHostPortPrefix() + emailConfig.getEnrollmentContextPath()));
|
emailConfig.getlBHostPortPrefix() + emailConfig.getEnrollmentContextPath()));
|
||||||
|
params.put(EmailConstants.SERVER_BASE_URL_HTTPS,
|
||||||
|
new TypedValue<Class<?>, Object>(String.class, EmailUtil.getServerBaseHttpsUrl()));
|
||||||
|
params.put(EmailConstants.SERVER_BASE_URL_HTTP,
|
||||||
|
new TypedValue<Class<?>, Object>(String.class, EmailUtil.getServerBaseHttpUrl()));
|
||||||
try {
|
try {
|
||||||
EmailData data = contentProvider.getContent("user-enrollment", params);
|
EmailData data = contentProvider.getContent("user-enrollment", params);
|
||||||
EmailServiceDataHolder.getInstance().getEmailServiceProvider().sendEmail(emailCtx.getRecipients(), data);
|
EmailServiceDataHolder.getInstance().getEmailServiceProvider().sendEmail(emailCtx.getRecipients(), data);
|
||||||
@ -550,6 +554,10 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
new TypedValue<Class<?>, Object>(String.class, emailCtx.getProperty("password")));
|
new TypedValue<Class<?>, Object>(String.class, emailCtx.getProperty("password")));
|
||||||
params.put(EmailConstants.DOMAIN,
|
params.put(EmailConstants.DOMAIN,
|
||||||
new TypedValue<Class<?>, Object>(String.class, emailCtx.getProperty("domain")));
|
new TypedValue<Class<?>, Object>(String.class, emailCtx.getProperty("domain")));
|
||||||
|
params.put(EmailConstants.SERVER_BASE_URL_HTTPS,
|
||||||
|
new TypedValue<Class<?>, Object>(String.class, EmailUtil.getServerBaseHttpsUrl()));
|
||||||
|
params.put(EmailConstants.SERVER_BASE_URL_HTTP,
|
||||||
|
new TypedValue<Class<?>, Object>(String.class, EmailUtil.getServerBaseHttpUrl()));
|
||||||
try {
|
try {
|
||||||
EmailData data = contentProvider.getContent("user-registration", params);
|
EmailData data = contentProvider.getContent("user-registration", params);
|
||||||
EmailServiceDataHolder.getInstance().getEmailServiceProvider().sendEmail(emailCtx.getRecipients(), data);
|
EmailServiceDataHolder.getInstance().getEmailServiceProvider().sendEmail(emailCtx.getRecipients(), data);
|
||||||
|
|||||||
@ -44,7 +44,6 @@ import java.util.Locale;
|
|||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
public class RegistryBasedLicenseManager implements LicenseManager {
|
public class RegistryBasedLicenseManager implements LicenseManager {
|
||||||
|
|
||||||
private Registry registry;
|
|
||||||
private GenericArtifactManager artifactManager;
|
private GenericArtifactManager artifactManager;
|
||||||
private static final Log log = LogFactory.getLog(RegistryBasedLicenseManager.class);
|
private static final Log log = LogFactory.getLog(RegistryBasedLicenseManager.class);
|
||||||
|
|
||||||
@ -54,7 +53,6 @@ public class RegistryBasedLicenseManager implements LicenseManager {
|
|||||||
throw new IllegalArgumentException("Registry instance retrieved is null. Hence, " +
|
throw new IllegalArgumentException("Registry instance retrieved is null. Hence, " +
|
||||||
"'Registry based license manager cannot be initialized'");
|
"'Registry based license manager cannot be initialized'");
|
||||||
}
|
}
|
||||||
this.registry = registry;
|
|
||||||
try {
|
try {
|
||||||
this.artifactManager = GenericArtifactManagerFactory.getTenantAwareGovernanceArtifactManager(registry);
|
this.artifactManager = GenericArtifactManagerFactory.getTenantAwareGovernanceArtifactManager(registry);
|
||||||
} catch (LicenseManagementException e) {
|
} catch (LicenseManagementException e) {
|
||||||
|
|||||||
@ -0,0 +1,55 @@
|
|||||||
|
<EmailConfig>
|
||||||
|
<Subject>You have been invited to enroll your device in WSO2 EMM</Subject>
|
||||||
|
<Body>
|
||||||
|
<![CDATA[
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>WSO2 Enterprise Mobility Manager</title>
|
||||||
|
</head>
|
||||||
|
<body style="color: #666666; background-color:#cdcdcd; padding: 0px; margin: 0px;">
|
||||||
|
<div style="background-color:#cdcdcd; font-size: 1em; font-family: Arial, Helvetica; line-height: 170%; color: #666666; padding: 20px 0px; margin: 0px;">
|
||||||
|
<div style="width: 86%; max-width: 650px; padding: 2%; background-color: #ffffff; margin: auto; border-radius: 14px;">
|
||||||
|
<div style="background-color: #49c8f5; line-height: 0px; border-top-left-radius: 10px; border-top-right-radius: 10px; padding: 0px 10px 0px 0px;">
|
||||||
|
<div style="display: inline-block; line-height: 0px;">
|
||||||
|
<img src="http://b.content.wso2.com/sites/all/2015-june-theme/navigation/wso2-nav-logo.png"
|
||||||
|
alt="WSO2" style="margin: 0px 20px 0px 25px; width: 100%; max-width: 251px;"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="background-color: #ffffff; line-height: 170%; color: #666666; padding: 20px 25px;">
|
||||||
|
<p style="font-size: 1em; font-family: Arial, Helvetica; line-height: 170%; color: #666666; margin: 5px 0px 20px;">
|
||||||
|
Hi $first-name,
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p style="font-size: 1em; font-family: Arial, Helvetica; line-height: 170%; color: #666666; margin: 5px 0px;">
|
||||||
|
You have been invited to enrol your device in WSO2 Enterprise Mobility Manager.
|
||||||
|
Click <a href="$download-url">here</a> to download the WSO2 EMM client application to begin device
|
||||||
|
enrolment.</p>
|
||||||
|
|
||||||
|
<p style="font-size: 1em; font-family: Arial, Helvetica; line-height: 170%; color: #666666; margin: 5px 0px;">
|
||||||
|
Should you need assistance, please contact your administrator.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p style="font-size: 1em; font-family: Arial, Helvetica; line-height: 170%; color: #666666; margin: 20px 0px 5px;">
|
||||||
|
Regards,
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p style="font-size: 1em; font-family: Arial, Helvetica; line-height: 170%; color: #666666; margin: 5px 0px;">
|
||||||
|
WSO2 EMM Administrator
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div style="background-color: #333333; border-bottom-left-radius: 10px; border-bottom-right-radius: 10px;">
|
||||||
|
<table cellpadding="0" cellspacing="0" border="0" width="100%">
|
||||||
|
<tr>
|
||||||
|
<td style="padding: 0px 20px 0px 0px;"><img
|
||||||
|
src="http://b.content.wso2.com/newsletter/images/wso2-logo-cloud-footer.png" alt="WSO2"
|
||||||
|
style="margin: 15px 0px 15px 25px; width: 100%; max-width: 258px;"/></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
]]>
|
||||||
|
</Body>
|
||||||
|
</EmailConfig>
|
||||||
@ -0,0 +1,65 @@
|
|||||||
|
<EmailConfig>
|
||||||
|
<Subject>You have successfully been registered in WSO2 EMM</Subject>
|
||||||
|
<Body>
|
||||||
|
<![CDATA[
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>WSO2 Enterprise Mobility Manager</title>
|
||||||
|
</head>
|
||||||
|
<body style="color: #666666; background-color:#cdcdcd; padding: 0px; margin: 0px;">
|
||||||
|
<div style="background-color:#cdcdcd; font-size: 1em; font-family: Arial, Helvetica; line-height: 170%; color: #666666; padding: 20px 0px; margin: 0px;">
|
||||||
|
<div style="width: 86%; max-width: 650px; padding: 2%; background-color: #ffffff; margin: auto; border-radius: 14px;">
|
||||||
|
<div style="background-color: #49c8f5; line-height: 0px; border-top-left-radius: 10px; border-top-right-radius: 10px; padding: 0px 10px 0px 0px;">
|
||||||
|
<div style="display: inline-block; line-height: 0px;">
|
||||||
|
<img src="http://b.content.wso2.com/sites/all/2015-june-theme/navigation/wso2-nav-logo.png"
|
||||||
|
alt="WSO2" style="margin: 0px 20px 0px 25px; width: 100%; max-width: 251px;"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="background-color: #ffffff; line-height: 170%; color: #666666; padding: 20px 25px;">
|
||||||
|
<p style="font-size: 1em; font-family: Arial, Helvetica; line-height: 170%; color: #666666; margin: 5px 0px 20px;">
|
||||||
|
Hi $first-name,
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p style="font-size: 1em; font-family: Arial, Helvetica; line-height: 170%; color: #666666; margin: 5px 0px;">
|
||||||
|
You have been registered in WSO2 Enterprise Mobility Manager and invited to enrol your device.
|
||||||
|
Click <a href="$download-url">here</a> to download the WSO2 EMM client application to begin device
|
||||||
|
enrolment.</p>
|
||||||
|
|
||||||
|
<p style="font-size: 1em; font-family: Arial, Helvetica; line-height: 170%; color: #666666; margin: 5px 0px;">
|
||||||
|
Use following credentials to log in to WSO2 EMM client application.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p style="font-size: 1em; font-family: Arial, Helvetica; line-height: 170%; color: #666666; margin: 5px 0px;">
|
||||||
|
<b>Username:</b> $username
|
||||||
|
<br/>
|
||||||
|
<b>Password:</b> $password
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p style="font-size: 1em; font-family: Arial, Helvetica; line-height: 170%; color: #666666; margin: 5px 0px;">
|
||||||
|
Should you need assistance, please contact your administrator.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p style="font-size: 1em; font-family: Arial, Helvetica; line-height: 170%; color: #666666; margin: 20px 0px 5px;">
|
||||||
|
Regards,
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p style="font-size: 1em; font-family: Arial, Helvetica; line-height: 170%; color: #666666; margin: 5px 0px;">
|
||||||
|
WSO2 EMM Administrator
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div style="background-color: #333333; border-bottom-left-radius: 10px; border-bottom-right-radius: 10px;">
|
||||||
|
<table cellpadding="0" cellspacing="0" border="0" width="100%">
|
||||||
|
<tr>
|
||||||
|
<td style="padding: 0px 20px 0px 0px;"><img
|
||||||
|
src="http://b.content.wso2.com/newsletter/images/wso2-logo-cloud-footer.png" alt="WSO2"
|
||||||
|
style="margin: 15px 0px 15px 25px; width: 100%; max-width: 258px;"/></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
]]>
|
||||||
|
</Body>
|
||||||
|
</EmailConfig>
|
||||||
6
pom.xml
6
pom.xml
@ -1225,12 +1225,6 @@
|
|||||||
<version>${version.commons.codec}</version>
|
<version>${version.commons.codec}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>commons-io.wso2</groupId>
|
|
||||||
<artifactId>commons-io</artifactId>
|
|
||||||
<version>${version.commons.io}</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>commons-lang.wso2</groupId>
|
<groupId>commons-lang.wso2</groupId>
|
||||||
<artifactId>commons-lang</artifactId>
|
<artifactId>commons-lang</artifactId>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user