From 4e871a2e09443a40feda6245cf1d08738e13a849 Mon Sep 17 00:00:00 2001 From: Erik Suta Date: Fri, 18 Jul 2014 14:55:57 +0200 Subject: [PATCH] MID-1999 fix --- .../configuration/PageSystemConfiguration.java | 4 ++-- .../component/SystemConfigPanel.java | 17 +++++++++-------- .../dto/NotificationConfigurationDto.java | 14 ++++++++++++-- .../dto/SystemConfigurationDto.java | 11 ++++++----- 4 files changed, 29 insertions(+), 17 deletions(-) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageSystemConfiguration.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageSystemConfiguration.java index 8e26989dd42..dc9e5f4c21a 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageSystemConfiguration.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageSystemConfiguration.java @@ -112,7 +112,7 @@ private SystemConfigurationDto loadSystemConfiguration() { PrismObject systemConfig = getModelService().getObject(SystemConfigurationType.class, SystemObjectsType.SYSTEM_CONFIGURATION.value(), options, task, result); - dto = new SystemConfigurationDto(systemConfig); + dto = new SystemConfigurationDto(systemConfig, getMidpointApplication().getProtector()); result.recordSuccess(); } catch(Exception ex){ LoggingUtils.logException(LOGGER, "Couldn't load system configuration", ex); @@ -132,7 +132,7 @@ private void initLayout() { Form mainForm = new Form(ID_MAIN_FORM); add(mainForm); - List tabs = new ArrayList(); + List tabs = new ArrayList<>(); tabs.add(new AbstractTab(createStringResource("pageSystemConfiguration.system.title")) { @Override diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/component/SystemConfigPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/component/SystemConfigPanel.java index ff3dc276535..c92e089f1b2 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/component/SystemConfigPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/component/SystemConfigPanel.java @@ -76,7 +76,7 @@ protected void initLayout(){ add(passPolicyChoosePanel); add(userTemplateChoosePanel); - DropDownChoice aepLevel = new DropDownChoice(ID_GLOBAL_AEP, + DropDownChoice aepLevel = new DropDownChoice<>(ID_GLOBAL_AEP, new PropertyModel(getModel(), "aepLevel"), WebMiscUtil.createReadonlyModelFromEnum(AEPlevel.class), new EnumChoiceRenderer(SystemConfigPanel.this)); @@ -86,22 +86,23 @@ protected void initLayout(){ } add(aepLevel); - TextField auditRecordsField = new TextField(ID_CLEANUP_AUDIT_RECORDS, new PropertyModel(getModel(), "auditCleanupValue")); - TextField closedTasksField = new TextField(ID_CLEANUP_CLOSED_TASKS, new PropertyModel(getModel(), "taskCleanupValue")); + TextField auditRecordsField = new TextField<>(ID_CLEANUP_AUDIT_RECORDS, new PropertyModel(getModel(), "auditCleanupValue")); + TextField closedTasksField = new TextField<>(ID_CLEANUP_CLOSED_TASKS, new PropertyModel(getModel(), "taskCleanupValue")); add(auditRecordsField); add(closedTasksField); createTooltip(ID_CLEANUP_AUDIT_RECORDS_TOOLTIP, this); createTooltip(ID_CLEANUP_CLOSED_TASKS_TOOLTIP, this); - TextField defaultFromField = new TextField(ID_DEFAULT_FROM, new PropertyModel(getModel(), "notificationConfig.defaultFrom")); + TextField defaultFromField = new TextField<>(ID_DEFAULT_FROM, new PropertyModel(getModel(), "notificationConfig.defaultFrom")); CheckBox debugCheck = new CheckBox(ID_DEBUG, new PropertyModel(getModel(), "notificationConfig.debug")); - TextField hostField = new TextField(ID_HOST, new PropertyModel(getModel(), "notificationConfig.host")); - TextField portField = new TextField(ID_PORT, new PropertyModel(getModel(), "notificationConfig.port")); - TextField userNameField = new TextField(ID_USERNAME, new PropertyModel(getModel(), "notificationConfig.username")); + TextField hostField = new TextField<>(ID_HOST, new PropertyModel(getModel(), "notificationConfig.host")); + TextField portField = new TextField<>(ID_PORT, new PropertyModel(getModel(), "notificationConfig.port")); + TextField userNameField = new TextField<>(ID_USERNAME, new PropertyModel(getModel(), "notificationConfig.username")); PasswordTextField passwordField = new PasswordTextField(ID_PASSWORD, new PropertyModel(getModel(), "notificationConfig.password")); passwordField.setRequired(false); - TextField redirectToFileField = new TextField(ID_REDIRECT_TO_FILE, new PropertyModel(getModel(), "notificationConfig.redirectToFile")); + passwordField.setResetPassword(false); + TextField redirectToFileField = new TextField<>(ID_REDIRECT_TO_FILE, new PropertyModel(getModel(), "notificationConfig.redirectToFile")); IModel choices = WebMiscUtil.createReadonlyModelFromEnum(MailTransportSecurityType.class); IChoiceRenderer renderer = new EnumChoiceRenderer(); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/dto/NotificationConfigurationDto.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/dto/NotificationConfigurationDto.java index a1a3f5d4dec..113400fea80 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/dto/NotificationConfigurationDto.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/dto/NotificationConfigurationDto.java @@ -15,6 +15,10 @@ */ package com.evolveum.midpoint.web.page.admin.configuration.dto; +import com.evolveum.midpoint.prism.crypto.Protector; +import com.evolveum.midpoint.util.logging.LoggingUtils; +import com.evolveum.midpoint.util.logging.Trace; +import com.evolveum.midpoint.util.logging.TraceManager; import com.evolveum.midpoint.web.util.WebMiscUtil; import com.evolveum.midpoint.xml.ns._public.common.common_3.MailConfigurationType; import com.evolveum.midpoint.xml.ns._public.common.common_3.MailServerConfigurationType; @@ -31,6 +35,8 @@ * */ public class NotificationConfigurationDto implements Serializable{ + private static final Trace LOGGER = TraceManager.getTrace(NotificationConfigurationDto.class); + private String defaultFrom; private boolean debug; private String redirectToFile; @@ -42,7 +48,7 @@ public class NotificationConfigurationDto implements Serializable{ public NotificationConfigurationDto(){} - public NotificationConfigurationDto(NotificationConfigurationType config){ + public NotificationConfigurationDto(NotificationConfigurationType config, Protector protector){ if(config.getMail() != null){ MailConfigurationType mailConfig = config.getMail(); @@ -65,7 +71,11 @@ public NotificationConfigurationDto(NotificationConfigurationType config){ username = serverConfig.getUsername(); if(serverConfig.getPassword() != null){ - password = serverConfig.getPassword().getClearValue(); + try { + password = protector.decryptString(serverConfig.getPassword()); + } catch (Exception e){ + LoggingUtils.logException(LOGGER, "Unable to decrypt password in mail configuration.", e); + } } else { password = null; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/dto/SystemConfigurationDto.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/dto/SystemConfigurationDto.java index d9b4ae49133..06f1a9a9fb7 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/dto/SystemConfigurationDto.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/dto/SystemConfigurationDto.java @@ -17,6 +17,7 @@ package com.evolveum.midpoint.web.page.admin.configuration.dto; import com.evolveum.midpoint.prism.PrismObject; +import com.evolveum.midpoint.prism.crypto.Protector; import com.evolveum.midpoint.web.page.admin.dto.ObjectViewDto; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; @@ -38,14 +39,14 @@ public class SystemConfigurationDto implements Serializable { private NotificationConfigurationDto notificationConfig; public SystemConfigurationDto(){ - this(null); + this(null, null); } - public SystemConfigurationDto(PrismObject config) { - init(config.asObjectable()); + public SystemConfigurationDto(PrismObject config, Protector protector) { + init(config.asObjectable(), protector); } - private void init(SystemConfigurationType config){ + private void init(SystemConfigurationType config, Protector protector){ if(config == null){ return; } @@ -65,7 +66,7 @@ private void init(SystemConfigurationType config){ objectTemplateDto = loadObjectTemplate(config); if(config.getNotificationConfiguration() != null){ - notificationConfig = new NotificationConfigurationDto(config.getNotificationConfiguration()); + notificationConfig = new NotificationConfigurationDto(config.getNotificationConfiguration(), protector); } else { notificationConfig = new NotificationConfigurationDto(); }