added proxy configs to send mail rule node and sysadmin
This commit is contained in:
		
							parent
							
								
									7ee2cdfe3e
								
							
						
					
					
						commit
						c2dd91d819
					
				@ -131,6 +131,7 @@ public class DefaultSystemDataLoaderService implements SystemDataLoaderService {
 | 
				
			|||||||
        node.put("username", "");
 | 
					        node.put("username", "");
 | 
				
			||||||
        node.put("password", "");
 | 
					        node.put("password", "");
 | 
				
			||||||
        node.put("tlsVersion", "TLSv1.2");//NOSONAR, key used to identify password field (not password value itself)
 | 
					        node.put("tlsVersion", "TLSv1.2");//NOSONAR, key used to identify password field (not password value itself)
 | 
				
			||||||
 | 
					        node.put("enableProxy", false);
 | 
				
			||||||
        mailSettings.setJsonValue(node);
 | 
					        mailSettings.setJsonValue(node);
 | 
				
			||||||
        adminSettingsService.saveAdminSettings(TenantId.SYS_TENANT_ID, mailSettings);
 | 
					        adminSettingsService.saveAdminSettings(TenantId.SYS_TENANT_ID, mailSettings);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -115,6 +115,21 @@ public class DefaultMailService implements MailService {
 | 
				
			|||||||
        if (enableTls && jsonConfig.has("tlsVersion") && StringUtils.isNoneEmpty(jsonConfig.get("tlsVersion").asText())) {
 | 
					        if (enableTls && jsonConfig.has("tlsVersion") && StringUtils.isNoneEmpty(jsonConfig.get("tlsVersion").asText())) {
 | 
				
			||||||
            javaMailProperties.put(MAIL_PROP + protocol + ".ssl.protocols", jsonConfig.get("tlsVersion").asText());
 | 
					            javaMailProperties.put(MAIL_PROP + protocol + ".ssl.protocols", jsonConfig.get("tlsVersion").asText());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        boolean enableProxy = jsonConfig.has("enableProxy") && jsonConfig.get("enableProxy").asBoolean();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (enableProxy) {
 | 
				
			||||||
 | 
					            javaMailProperties.put(MAIL_PROP + protocol + ".proxy.host", jsonConfig.get("proxyHost").asText());
 | 
				
			||||||
 | 
					            javaMailProperties.put(MAIL_PROP + protocol + ".proxy.port", jsonConfig.get("proxyPort").asText());
 | 
				
			||||||
 | 
					            String proxyUser = jsonConfig.get("proxyUser").asText();
 | 
				
			||||||
 | 
					            if (StringUtils.isNoneEmpty(proxyUser)) {
 | 
				
			||||||
 | 
					                javaMailProperties.put(MAIL_PROP + protocol + ".proxy.user", proxyUser);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            String proxyPassword = jsonConfig.get("proxyPassword").asText();
 | 
				
			||||||
 | 
					            if (StringUtils.isNoneEmpty(proxyPassword)) {
 | 
				
			||||||
 | 
					                javaMailProperties.put(MAIL_PROP + protocol + ".proxy.password", proxyPassword);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        return javaMailProperties;
 | 
					        return javaMailProperties;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -147,6 +147,16 @@ public class TbSendEmailNode implements TbNode {
 | 
				
			|||||||
        if (this.config.isEnableTls() && StringUtils.isNoneEmpty(this.config.getTlsVersion())) {
 | 
					        if (this.config.isEnableTls() && StringUtils.isNoneEmpty(this.config.getTlsVersion())) {
 | 
				
			||||||
            javaMailProperties.put(MAIL_PROP + protocol + ".ssl.protocols", this.config.getTlsVersion());
 | 
					            javaMailProperties.put(MAIL_PROP + protocol + ".ssl.protocols", this.config.getTlsVersion());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        if (this.config.isEnableProxy()) {
 | 
				
			||||||
 | 
					            javaMailProperties.put(MAIL_PROP + protocol + ".proxy.host", config.getProxyHost());
 | 
				
			||||||
 | 
					            javaMailProperties.put(MAIL_PROP + protocol + ".proxy.port", config.getProxyPort());
 | 
				
			||||||
 | 
					            if (StringUtils.isNoneEmpty(config.getProxyUser())) {
 | 
				
			||||||
 | 
					                javaMailProperties.put(MAIL_PROP + protocol + ".proxy.user", config.getProxyUser());
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            if (StringUtils.isNoneEmpty(config.getProxyPassword())) {
 | 
				
			||||||
 | 
					                javaMailProperties.put(MAIL_PROP + protocol + ".proxy.password", config.getProxyPassword());
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        return javaMailProperties;
 | 
					        return javaMailProperties;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -30,6 +30,11 @@ public class TbSendEmailNodeConfiguration implements NodeConfiguration {
 | 
				
			|||||||
    private int timeout;
 | 
					    private int timeout;
 | 
				
			||||||
    private boolean enableTls;
 | 
					    private boolean enableTls;
 | 
				
			||||||
    private String tlsVersion;
 | 
					    private String tlsVersion;
 | 
				
			||||||
 | 
					    private boolean enableProxy;
 | 
				
			||||||
 | 
					    private String proxyHost;
 | 
				
			||||||
 | 
					    private String proxyPort;
 | 
				
			||||||
 | 
					    private String proxyUser;
 | 
				
			||||||
 | 
					    private String proxyPassword;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public TbSendEmailNodeConfiguration defaultConfiguration() {
 | 
					    public TbSendEmailNodeConfiguration defaultConfiguration() {
 | 
				
			||||||
@ -41,6 +46,7 @@ public class TbSendEmailNodeConfiguration implements NodeConfiguration {
 | 
				
			|||||||
        configuration.setTimeout(10000);
 | 
					        configuration.setTimeout(10000);
 | 
				
			||||||
        configuration.setEnableTls(false);
 | 
					        configuration.setEnableTls(false);
 | 
				
			||||||
        configuration.setTlsVersion("TLSv1.2");
 | 
					        configuration.setTlsVersion("TLSv1.2");
 | 
				
			||||||
 | 
					        configuration.setEnableProxy(false);
 | 
				
			||||||
        return configuration;
 | 
					        return configuration;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@ -88,6 +88,37 @@
 | 
				
			|||||||
							</md-option>
 | 
												</md-option>
 | 
				
			||||||
						</md-select>
 | 
											</md-select>
 | 
				
			||||||
					</md-input-container>
 | 
										</md-input-container>
 | 
				
			||||||
 | 
										<md-checkbox class="md-block" flex="100" flex-gt-sm="60" ng-disabled="$root.loading" aria-label="{{ 'admin.enable-proxy' | translate }}" ng-model="vm.settings.jsonValue.enableProxy">
 | 
				
			||||||
 | 
											{{ 'admin.enable-proxy' | translate }}
 | 
				
			||||||
 | 
										</md-checkbox>
 | 
				
			||||||
 | 
										<div layout-gt-sm="row">
 | 
				
			||||||
 | 
										<md-input-container class="md-block" flex="100" flex-gt-sm="60" ng-if="vm.settings.jsonValue.enableProxy">
 | 
				
			||||||
 | 
											<label translate>admin.proxy-host</label>
 | 
				
			||||||
 | 
											<input required name="proxyHost" ng-model="vm.settings.jsonValue.proxyHost">
 | 
				
			||||||
 | 
											<div ng-messages="vm.settingsForm.proxyHost.$error">
 | 
				
			||||||
 | 
												<div translate ng-message="required">admin.proxy-host-required</div>
 | 
				
			||||||
 | 
											</div>
 | 
				
			||||||
 | 
										</md-input-container>
 | 
				
			||||||
 | 
										<md-input-container ng-if="vm.settings.jsonValue.enableProxy" class="md-block" flex="100" flex-gt-sm="40">
 | 
				
			||||||
 | 
											<label translate>admin.proxy-port</label>
 | 
				
			||||||
 | 
											<input required name="proxyPort" ng-model="vm.settings.jsonValue.proxyPort"
 | 
				
			||||||
 | 
												   ng-pattern="/^([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$/"
 | 
				
			||||||
 | 
												   md-maxlength="5">
 | 
				
			||||||
 | 
											<div ng-messages="vm.settingsForm.proxyPort.$error" role="alert" multiple>
 | 
				
			||||||
 | 
												<div translate ng-message="required">admin.proxy-port-required</div>
 | 
				
			||||||
 | 
												<div translate ng-message="pattern">admin.proxy-port-invalid</div>
 | 
				
			||||||
 | 
												<div translate ng-message="md-maxlength">admin.proxy-port-invalid</div>
 | 
				
			||||||
 | 
											</div>
 | 
				
			||||||
 | 
										</md-input-container>
 | 
				
			||||||
 | 
										</div>
 | 
				
			||||||
 | 
										<md-input-container class="md-block" ng-if="vm.settings.jsonValue.enableProxy">
 | 
				
			||||||
 | 
											<label translate>admin.proxy-user</label>
 | 
				
			||||||
 | 
											<input name="proxyUser" ng-model="vm.settings.jsonValue.proxyUser">
 | 
				
			||||||
 | 
										</md-input-container>
 | 
				
			||||||
 | 
										<md-input-container class="md-block" ng-if="vm.settings.jsonValue.enableProxy">
 | 
				
			||||||
 | 
											<label translate>admin.proxy-password</label>
 | 
				
			||||||
 | 
											<input name="proxyPassword" ng-model="vm.settings.jsonValue.proxyPassword">
 | 
				
			||||||
 | 
										</md-input-container>
 | 
				
			||||||
					<md-input-container class="md-block">
 | 
										<md-input-container class="md-block">
 | 
				
			||||||
						<label translate>common.username</label>
 | 
											<label translate>common.username</label>
 | 
				
			||||||
						<input name="username" placeholder="{{ 'common.enter-username' | translate }}" ng-model="vm.settings.jsonValue.username">
 | 
											<input name="username" placeholder="{{ 'common.enter-username' | translate }}" ng-model="vm.settings.jsonValue.username">
 | 
				
			||||||
 | 
				
			|||||||
@ -87,6 +87,14 @@
 | 
				
			|||||||
        "timeout-invalid": "That doesn't look like a valid timeout.",
 | 
					        "timeout-invalid": "That doesn't look like a valid timeout.",
 | 
				
			||||||
        "enable-tls": "Enable TLS",
 | 
					        "enable-tls": "Enable TLS",
 | 
				
			||||||
        "tls-version": "TLS version",
 | 
					        "tls-version": "TLS version",
 | 
				
			||||||
 | 
					        "enable-proxy": "Enable proxy",
 | 
				
			||||||
 | 
					        "proxy-host": "Proxy host",
 | 
				
			||||||
 | 
					        "proxy-host-required": "Proxy host is required.",
 | 
				
			||||||
 | 
					        "proxy-port": "Proxy port",
 | 
				
			||||||
 | 
					        "proxy-port-required": "You must supply a proxy port.",
 | 
				
			||||||
 | 
					        "proxy-port-invalid": "That doesn't look like a valid proxy port.",
 | 
				
			||||||
 | 
					        "proxy-user": "Proxy user",
 | 
				
			||||||
 | 
					        "proxy-password": "Proxy password",
 | 
				
			||||||
        "send-test-mail": "Send test mail",
 | 
					        "send-test-mail": "Send test mail",
 | 
				
			||||||
        "security-settings": "Security settings",
 | 
					        "security-settings": "Security settings",
 | 
				
			||||||
        "password-policy": "Password policy",
 | 
					        "password-policy": "Password policy",
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user