Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions uvm/api/com/untangle/uvm/LocalDirectory.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,22 @@ public interface LocalDirectory
*/
public LinkedList<LocalDirectoryUser> getUsers();

/*
* Return a list of users (V2)
*/
public LinkedList<LocalDirectoryUser> getUsersV2();

/**
* Save a new list of users
*/
public void setUsers(LinkedList<LocalDirectoryUser> users);

/*
* Save a new list of users (V2)
* @param users
*/
public void setUsersV2(LinkedList<LocalDirectoryUser> users);

/**
* Adds a new user
*/
Expand Down
6 changes: 6 additions & 0 deletions uvm/api/com/untangle/uvm/MailSender.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,17 @@
*/
public interface MailSender
{
void setSettingsV2(MailSettings newSettings);

/**
* Set the mail settings.
*
* @param settings the new mail settings.
*/
void setSettings(MailSettings settings);

MailSettings getSettingsV2();

/**
* Get the mail settings.
*
Expand Down Expand Up @@ -128,6 +132,8 @@ public enum MessagePartsField {
*/
void sendMessageWithAttachments(String[] recipients, String subject, String bodyHTML, List<String> extraLocations, List<File> extras);

String sendTestMessageV2(String recipient);

/**
* Used by the UI to test saved MailSettings. A static test email
* is sent to the given address.
Expand Down
2 changes: 2 additions & 0 deletions uvm/api/com/untangle/uvm/SystemManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ public enum UpgradeFailures {

void setSystemSettingsV2(SystemSettingsGeneric systemSettingsGeneric);

void setSystemSettingsV2(SystemSettingsGeneric settings, boolean dirtyRadiusFields);

/**
* Returns the time zone that the UVM is currently set to
*/
Expand Down
13 changes: 13 additions & 0 deletions uvm/api/com/untangle/uvm/SystemSettings.java
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,19 @@ public SystemSettingsGeneric transformLegacyToGenericSettings(NetworkSettings ne
systemSettingsGeneric.setAutoUpgradeDays(this.autoUpgradeDays);
systemSettingsGeneric.setHourOfDay(this.autoUpgradeHour);
systemSettingsGeneric.setMinuteOfHour(this.autoUpgradeMinute);
systemSettingsGeneric.setRadiusServerEnabled(this.radiusServerEnabled);
systemSettingsGeneric.setRadiusServerSecret(this.radiusServerSecret);
systemSettingsGeneric.setRadiusProxyEnabled(this.radiusProxyEnabled);
systemSettingsGeneric.setRadiusProxyServer(this.radiusProxyServer);
systemSettingsGeneric.setRadiusProxyWorkgroup(this.radiusProxyWorkgroup);
systemSettingsGeneric.setRadiusProxyRealm(this.radiusProxyRealm);
systemSettingsGeneric.setRadiusProxyUsername(this.radiusProxyUsername);
systemSettingsGeneric.setRadiusProxyPassword(this.radiusProxyPassword);
systemSettingsGeneric.setRadiusProxyEncryptedPassword(this.radiusProxyEncryptedPassword);
systemSettingsGeneric.setWebCertificate(this.webCertificate);
systemSettingsGeneric.setMailCertificate(this.mailCertificate);
systemSettingsGeneric.setIpsecCertificate(this.ipsecCertificate);
systemSettingsGeneric.setRadiusCertificate(this.radiusCertificate);

if (networkSettings != null) {
// Local Services Settings
Expand Down
72 changes: 72 additions & 0 deletions uvm/api/com/untangle/uvm/generic/SystemSettingsGeneric.java
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,34 @@ public class SystemSettingsGeneric implements Serializable, JSONString {
private int hourOfDay = 2;
private int minuteOfHour = 0;

/**
* These are used for LocalDirectory RADIUS server support
*/
private boolean radiusServerEnabled = false;
private String radiusServerSecret = "SharedSecret";

/**
* These are used for RADIUS proxy support
*/
private boolean radiusProxyEnabled = false;
private String radiusProxyServer = StringUtils.EMPTY;
private String radiusProxyWorkgroup = StringUtils.EMPTY;
private String radiusProxyRealm = StringUtils.EMPTY;
private String radiusProxyUsername = StringUtils.EMPTY;
private String radiusProxyPassword = StringUtils.EMPTY;
private String radiusProxyEncryptedPassword = StringUtils.EMPTY;

/**
* These are used to indicate which certificate is assigned to each of
* the services that are provided by this server. We assign apache.pem
* to each by default, since that is the name of the cert that is
* created and signed by our internal CA during the installation.
*/
private String webCertificate = "apache.pem";
private String mailCertificate = "apache.pem";
private String ipsecCertificate = "apache.pem";
private String radiusCertificate = "apache.pem";

private LanguageSettings languageSettings = null;
private LinkedList<LocaleInfo> languagesList = null;

Expand Down Expand Up @@ -164,6 +192,37 @@ public void setCCHidden(boolean isCCHidden) {
public int getMinuteOfHour() { return minuteOfHour; }
public void setMinuteOfHour(int minuteOfHour) { this.minuteOfHour = minuteOfHour; }

/**
* These are required for Local Directory Settings
*/
public boolean isRadiusServerEnabled() { return radiusServerEnabled; }
public void setRadiusServerEnabled(boolean radiusServerEnabled) { this.radiusServerEnabled = radiusServerEnabled; }
public String getRadiusServerSecret() { return radiusServerSecret; }
public void setRadiusServerSecret(String radiusServerSecret) { this.radiusServerSecret = radiusServerSecret; }
public boolean isRadiusProxyEnabled() { return radiusProxyEnabled; }
public void setRadiusProxyEnabled(boolean radiusProxyEnabled) { this.radiusProxyEnabled = radiusProxyEnabled; }
public String getRadiusProxyServer() { return radiusProxyServer; }
public void setRadiusProxyServer(String radiusProxyServer) { this.radiusProxyServer = radiusProxyServer; }
public String getRadiusProxyWorkgroup() { return radiusProxyWorkgroup; }
public void setRadiusProxyWorkgroup(String radiusProxyWorkgroup) { this.radiusProxyWorkgroup = radiusProxyWorkgroup; }
public String getRadiusProxyRealm() { return radiusProxyRealm; }
public void setRadiusProxyRealm(String radiusProxyRealm) { this.radiusProxyRealm = radiusProxyRealm; }
public String getRadiusProxyUsername() { return radiusProxyUsername; }
public void setRadiusProxyUsername(String radiusProxyUsername) { this.radiusProxyUsername = radiusProxyUsername; }
public String getRadiusProxyPassword() { return radiusProxyPassword; }
public void setRadiusProxyPassword(String radiusProxyPassword) { this.radiusProxyPassword = radiusProxyPassword; }
public String getRadiusProxyEncryptedPassword() { return radiusProxyEncryptedPassword; }
public void setRadiusProxyEncryptedPassword(String radiusProxyEncryptedPassword) { this.radiusProxyEncryptedPassword = radiusProxyEncryptedPassword; }

public String getWebCertificate() { return webCertificate; }
public void setWebCertificate(String webCertificate) { this.webCertificate = webCertificate; }
public String getMailCertificate() { return mailCertificate; }
public void setMailCertificate(String mailCertificate) { this.mailCertificate = mailCertificate; }
public String getIpsecCertificate() { return ipsecCertificate; }
public void setIpsecCertificate(String ipsecCertificate) { this.ipsecCertificate = ipsecCertificate; }
public String getRadiusCertificate() { return radiusCertificate; }
public void setRadiusCertificate(String radiusCertificate) { this.radiusCertificate = radiusCertificate; }

public LanguageSettings getLanguageSettings() { return languageSettings;}
public void setLanguageSettings(LanguageSettings languageSettings) { this.languageSettings = languageSettings; }
public LinkedList<LocaleInfo> getLanguagesList() { return languagesList; }
Expand Down Expand Up @@ -216,6 +275,19 @@ public void transformGenericToLegacySettings(SystemSettings systemSettings, Netw
systemSettings.setAutoUpgradeDays(this.autoUpgradeDays);
systemSettings.setAutoUpgradeHour(this.hourOfDay);
systemSettings.setAutoUpgradeMinute(this.minuteOfHour);
systemSettings.setRadiusServerEnabled(this.radiusServerEnabled);
systemSettings.setRadiusServerSecret(this.radiusServerSecret);
systemSettings.setRadiusProxyEnabled(this.radiusProxyEnabled);
systemSettings.setRadiusProxyServer(this.radiusProxyServer);
systemSettings.setRadiusProxyWorkgroup(this.radiusProxyWorkgroup);
systemSettings.setRadiusProxyRealm(this.radiusProxyRealm);
systemSettings.setRadiusProxyUsername(this.radiusProxyUsername);
systemSettings.setRadiusProxyPassword(this.radiusProxyPassword);
systemSettings.setRadiusProxyEncryptedPassword(this.radiusProxyEncryptedPassword);
systemSettings.setWebCertificate(this.webCertificate);
systemSettings.setMailCertificate(this.mailCertificate);
systemSettings.setIpsecCertificate(this.ipsecCertificate);
systemSettings.setRadiusCertificate(this.radiusCertificate);
}

if (languageSettings != null && this.getLanguageSettings() != null) {
Expand Down
19 changes: 19 additions & 0 deletions uvm/impl/com/untangle/uvm/LocalDirectoryImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -408,6 +408,15 @@ public LinkedList<LocalDirectoryUser> getUsers()
return this.currentList;
}

/**
* Get the list of local directory users (V2)
* @return The list of local directory users (V2)
*/
public LinkedList<LocalDirectoryUser> getUsersV2()
{
return getUsers();
}

/**
* Set the list of local directory users
*
Expand Down Expand Up @@ -444,6 +453,16 @@ public void setUsers(LinkedList<LocalDirectoryUser> users)
saveUsersList(users);
}

/**
* Set the list of local directory users (v2)
*
* @param users
* The list of users
*/
public void setUsersV2(LinkedList<LocalDirectoryUser> users) {
setUsers(users);
}

/**
* Add a user to the local directory
*
Expand Down
60 changes: 45 additions & 15 deletions uvm/impl/com/untangle/uvm/MailSenderImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,6 @@
import org.apache.logging.log4j.LogManager;

import com.sun.mail.smtp.SMTPTransport;
import com.untangle.uvm.MailSender;
import com.untangle.uvm.MailSettings;
import com.untangle.uvm.SettingsManager;
import com.untangle.uvm.UvmContext;
import com.untangle.uvm.UvmContextFactory;
import com.untangle.uvm.MailSettings.SendMethod;
import com.untangle.uvm.network.NetworkSettings;
import com.untangle.uvm.util.I18nUtil;
Expand Down Expand Up @@ -160,10 +155,10 @@ private MailSenderImpl()
if (readSettings.getSendMethod() == MailSettings.SendMethod.RELAY) {
readSettings.setSendMethod(SendMethod.DIRECT);
this.setSettings(readSettings);
logger.info("Changing mail settings to Direct Settings: " + this.settings.toJSONString());
logger.info("Changing mail settings to Direct Settings: {}", this.settings.toJSONString());
}
this.settings = readSettings;
logger.debug("Loading Settings: " + this.settings.toJSONString());
logger.debug("Loading Settings: {}", this.settings.toJSONString());
}

/**
Expand All @@ -184,6 +179,17 @@ private MailSenderImpl()
logger.info("Initialized MailSender");
}

/**
* Get the settings V2 API
*
* @return The settings
*/
@Override
public MailSettings getSettingsV2()
{
return getSettings();
}

/**
* Get the settings
*
Expand All @@ -194,6 +200,18 @@ public MailSettings getSettings()
return settings;
}

/**
* Set the settings V2 API
*
* @param newSettings
* The new settings
*/
@Override
public void setSettingsV2(final MailSettings newSettings)
{
setSettings(newSettings);
}

/**
* Set the settings
*
Expand All @@ -218,7 +236,7 @@ public void setSettings(final MailSettings newSettings)
*/
this.settings = newSettings;
try {
logger.debug("New Settings: \n" + new org.json.JSONObject(this.settings).toString(2));
logger.debug("New Settings: \n{}", new org.json.JSONObject(this.settings).toString(2));
} catch (Exception e) {
}

Expand Down Expand Up @@ -414,6 +432,18 @@ public void sendMessage(String[] recipients, String subject, List<Map<MessagePar

}

/**
* Send a test message V2 API
*
* @param recipient
* The recipient
* @return The send result
*/
@Override
public String sendTestMessageV2(String recipient) {
return sendTestMessage(recipient);
}

/**
* Send a test message
*
Expand Down Expand Up @@ -654,7 +684,7 @@ private void writeConfiguration()
try{
UvmContextFactory.context().execManager().execEvil(EXIM_CMD_RESTART_EXIM + " &");
}catch( Exception e){
logger.warn("error calling " + EXIM_CMD_RESTART_EXIM, e);
logger.warn("error calling {}", EXIM_CMD_RESTART_EXIM, e);
}

}
Expand Down Expand Up @@ -732,7 +762,7 @@ private Address[] parseAddresses(String[] addrStrings)
}
}
} catch (Exception ex) {
logger.warn("Unable to parse \"" + s + "\" into email address");
logger.warn("Unable to parse + s + {}", " into email address");
}
}
return ret.toArray(new Address[ret.size()]);
Expand All @@ -759,7 +789,7 @@ private Message prepMessage(Session session, String[] to, String subject)
try {
addrs[i] = InternetAddress.parse(to[i], false);
} catch (AddressException x) {
logger.error("Failed to parse receipient address " + to[i] + ", ignoring");
logger.error("Failed to parse receipient address {}, ignoring", to[i] );
addrs[i] = null;
}
}
Expand Down Expand Up @@ -819,7 +849,7 @@ private void logIt(Message msg) throws MessagingException
}
sb.append(")");
}
logger.info(sb.toString());
logger.info("{}", sb);
}
}

Expand Down Expand Up @@ -1061,7 +1091,7 @@ protected boolean sendMultiPart(Session session, String[] to, String subject, Li
try {
contentType = Files.probeContentType(Paths.get(filename));
} catch (Exception e) {
logger.warn("paths exception " + e);
logger.warn("paths exception", e);
contentType = dh.getContentType();
}
mimeBodyPart.setHeader("Content-Type", contentType + "; name=\"" + attachmentFile.getName() + "\"");
Expand Down Expand Up @@ -1386,7 +1416,7 @@ private String getMessage(String logId, List<String> logLines)
}
}
}
logger.info("Test email msg:" + msg);
logger.info("Test email msg:{}", msg);
return msg;
}

Expand All @@ -1413,7 +1443,7 @@ private void writeFile(StringBuilder sb, String fileName)
* XXX May need to catch this exception, restore defaults then try
* again
*/
logger.error("Error writing file " + fileName + ":", ex);
logger.error("Error writing file {}:", fileName , ex);
}

try {
Expand Down
13 changes: 11 additions & 2 deletions uvm/impl/com/untangle/uvm/SystemManagerImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -275,11 +275,20 @@ public SystemSettingsGeneric getSystemSettingsV2() {
return this.settings.transformLegacyToGenericSettings(networkSettings);
}

/**
* set SystemSettingsGeneric
* @param systemSettingsGeneric
*/
public void setSystemSettingsV2(final SystemSettingsGeneric systemSettingsGeneric) {
setSystemSettingsV2(systemSettingsGeneric, false);
}

/**
* Sets the SystemSettings and NetworkSettings (Hostname/Services)
* @param systemSettingsGeneric SystemSettingsGeneric
* @param dirtyRadiusFields If the Radius Proxy fields are 'dirty' and so a computer account needs to be added
*/
public void setSystemSettingsV2(final SystemSettingsGeneric systemSettingsGeneric) {
public void setSystemSettingsV2(final SystemSettingsGeneric systemSettingsGeneric, boolean dirtyRadiusFields) {
// Get current network settings and clone it.
NetworkSettings networkSettings = UvmContextFactory.context().networkManager().getNetworkSettings();
NetworkSettings clonedNetworkSettings = SerializationUtils.clone(networkSettings);
Expand All @@ -302,7 +311,7 @@ public void setSystemSettingsV2(final SystemSettingsGeneric systemSettingsGeneri
UvmContextFactory.context().languageManager().setLanguageSettings(clonedLanguageSettings);

// Set System settings
this.setSettings(clonedSystemSettings);
this.setSettings(clonedSystemSettings, dirtyRadiusFields);
}

/**
Expand Down