=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/setting/SettingKey.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/setting/SettingKey.java 2016-01-06 18:19:09 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/setting/SettingKey.java 2016-01-06 18:37:13 +0000 @@ -58,7 +58,6 @@ EMAIL_USERNAME( "keyEmailUsername" ), EMAIL_TLS( "keyEmailTls", Boolean.TRUE, Boolean.class ), EMAIL_SENDER( "keyEmailSender" ), - EMAIL_PASSWORD( "keyEmailPassword", "", String.class, true ), INSTANCE_BASE_URL( "keyInstanceBaseUrl" ), SCHEDULED_TASKS( "keySchedTasks", ListMap.class ), SMS_CONFIG( "keySmsConfig", SmsConfiguration.class ), @@ -113,10 +112,7 @@ APP_BASE_URL( "appBaseUrl" ), APP_STORE_URL( "appStoreUrl", "https://www.dhis2.org/appstore", String.class ), APP_STORE_INDEX_URL( "appStoreIndexUrl", "https://s3-eu-west-1.amazonaws.com/dhis2-appstore/appstore.json", String.class ), - STYLE( "currentStyle", "light_blue/light_blue.css", String.class ), - REMOTE_INSTANCE_URL( "keyRemoteInstanceUrl", "", String.class ), - REMOTE_INSTANCE_USERNAME( "keyRemoteInstanceUsername", "", String.class ), - REMOTE_INSTANCE_PASSWORD( "keyRemoteInstancePassword", "", String.class, true ); + STYLE( "currentStyle", "light_blue/light_blue.css", String.class ); private final String name; @@ -124,8 +120,6 @@ private final Class clazz; - private boolean confidential; - // ------------------------------------------------------------------------- // Constructors // ------------------------------------------------------------------------- @@ -135,7 +129,6 @@ this.name = name; this.defaultValue = null; this.clazz = String.class; - this.confidential = false; } private SettingKey( String name, Class clazz ) @@ -143,23 +136,13 @@ this.name = name; this.defaultValue = null; this.clazz = clazz; - this.confidential = false; } - + private SettingKey( String name, Serializable defaultValue, Class clazz ) { this.name = name; this.defaultValue = defaultValue; this.clazz = clazz; - this.confidential = false; - } - - private SettingKey( String name, Serializable defaultValue, Class clazz, boolean confidential ) - { - this.name = name; - this.defaultValue = defaultValue; - this.clazz = clazz; - this.confidential = confidential; } // ------------------------------------------------------------------------- @@ -224,7 +207,6 @@ return name; } - public Serializable getDefaultValue() { return defaultValue; @@ -234,6 +216,4 @@ { return clazz; } - - public boolean getConfidential() { return confidential; } } === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/setting/SystemSetting.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/setting/SystemSetting.java 2016-01-06 18:19:09 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/setting/SystemSetting.java 2016-01-06 18:37:13 +0000 @@ -44,8 +44,6 @@ private Serializable value; - private boolean confidential; - // ------------------------------------------------------------------------- // Constructor // ------------------------------------------------------------------------- === modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/setting/SystemSettingManager.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/setting/SystemSettingManager.java 2016-01-06 18:19:09 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/setting/SystemSettingManager.java 2016-01-06 18:37:13 +0000 @@ -40,35 +40,35 @@ public interface SystemSettingManager { void saveSystemSetting( String name, Serializable value ); - + void saveSystemSetting( SettingKey setting, Serializable value ); void deleteSystemSetting( String name ); - + void deleteSystemSetting( SettingKey setting ); Serializable getSystemSetting( String name ); Serializable getSystemSetting( SettingKey setting ); - + Serializable getSystemSetting( SettingKey setting, Serializable defaultValue ); - + List getAllSystemSettings(); Map getSystemSettingsAsMap(); - + Map getSystemSettingsAsMap( Set names ); - + Map getSystemSettings( Collection settings ); - + void invalidateCache(); - + // ------------------------------------------------------------------------- // Specific methods // ------------------------------------------------------------------------- List getFlags(); - + List getFlagObjects(); String getFlagImage(); @@ -80,7 +80,7 @@ String getEmailUsername(); boolean getEmailTls(); - + String getEmailSender(); String getInstanceBaseUrl(); @@ -90,16 +90,14 @@ boolean selfRegistrationNoRecaptcha(); boolean emailEnabled(); - + boolean systemNotificationEmailValid(); boolean hideUnapprovedDataInAnalytics(); - + boolean isOpenIdConfigured(); - + String googleAnalyticsUA(); Integer credentialsExpires(); - - boolean isConfidential( String name ); } === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/EmailMessageSender.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/EmailMessageSender.java 2016-01-06 18:19:42 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/EmailMessageSender.java 2016-01-06 18:37:13 +0000 @@ -77,12 +77,19 @@ // ------------------------------------------------------------------------- private SystemSettingManager systemSettingManager; - + public void setSystemSettingManager( SystemSettingManager systemSettingManager ) { this.systemSettingManager = systemSettingManager; } + private DhisConfigurationProvider dhisConfigurationProvider; + + public void setDhisConfigurationProvider( DhisConfigurationProvider dhisConfigurationProvider) + { + this.dhisConfigurationProvider = dhisConfigurationProvider; + } + private UserSettingService userSettingService; public void setUserSettingService( UserSettingService userSettingService ) @@ -99,15 +106,14 @@ */ @Async @Override - public String sendMessage( String subject, String text, String footer, User sender, Set users, - boolean forceSend ) + public String sendMessage( String subject, String text, String footer, User sender, Set users, boolean forceSend ) { - String hostName = (String) systemSettingManager.getSystemSetting( SettingKey.EMAIL_HOST_NAME ); - int port = (int) systemSettingManager.getSystemSetting( SettingKey.EMAIL_PORT ); - String username = (String) systemSettingManager.getSystemSetting( SettingKey.EMAIL_USERNAME ); - String password = (String) systemSettingManager.getSystemSetting( SettingKey.EMAIL_PASSWORD ); - boolean tls = (boolean) systemSettingManager.getSystemSetting( SettingKey.EMAIL_TLS ); - String from = (String) systemSettingManager.getSystemSetting( SettingKey.EMAIL_SENDER ); + String hostName = dhisConfigurationProvider.getProperty( ConfigurationKey.SMTP_HOSTNAME ); + int port = Integer.parseInt( dhisConfigurationProvider.getProperty( ConfigurationKey.SMTP_PORT ) ); + String username = dhisConfigurationProvider.getProperty( ConfigurationKey.SMTP_USERNAME ); + String password = dhisConfigurationProvider.getProperty( ConfigurationKey.SMTP_PASSWORD ); + boolean tls = Boolean.parseBoolean( dhisConfigurationProvider.getProperty( ConfigurationKey.SMTP_TLS ) ); + String from = dhisConfigurationProvider.getProperty( ConfigurationKey.SMTP_SENDER ); if ( hostName == null ) { @@ -128,16 +134,13 @@ for ( User user : users ) { - boolean doSend = forceSend || - (Boolean) userSettingService.getUserSetting( UserSettingKey.MESSAGE_EMAIL_NOTIFICATION, user ); + boolean doSend = forceSend || (Boolean) userSettingService.getUserSetting( UserSettingKey.MESSAGE_EMAIL_NOTIFICATION, user ); if ( doSend && user.getEmail() != null && !user.getEmail().trim().isEmpty() ) { email.addBcc( user.getEmail() ); - log.info( - "Sending email to user: " + user.getUsername() + " with email address: " + user.getEmail() + - " to host: " + hostName + ":" + port ); + log.info( "Sending email to user: " + user.getUsername() + " with email address: " + user.getEmail() + " to host: " + hostName + ":" + port ); hasRecipients = true; } @@ -165,8 +168,7 @@ // Supportive methods // ------------------------------------------------------------------------- - private HtmlEmail getHtmlEmail( String hostName, int port, String username, String password, boolean tls, - String sender ) + private HtmlEmail getHtmlEmail( String hostName, int port, String username, String password, boolean tls, String sender ) throws EmailException { HtmlEmail email = new HtmlEmail(); @@ -185,11 +187,11 @@ private String renderPlainContent( String text, User sender ) { - return sender == null ? text : (text + LB + LB + + return sender == null ? text : ( text + LB + LB + sender.getName() + LB + - (sender.getOrganisationUnitsName() != null ? (sender.getOrganisationUnitsName() + LB) : StringUtils.EMPTY) + - (sender.getEmail() != null ? (sender.getEmail() + LB) : StringUtils.EMPTY) + - (sender.getPhoneNumber() != null ? (sender.getPhoneNumber() + LB) : StringUtils.EMPTY)); + ( sender.getOrganisationUnitsName() != null ? ( sender.getOrganisationUnitsName() + LB ) : StringUtils.EMPTY ) + + ( sender.getEmail() != null ? ( sender.getEmail() + LB ) : StringUtils.EMPTY ) + + ( sender.getPhoneNumber() != null ? ( sender.getPhoneNumber() + LB ) : StringUtils.EMPTY ) ); } private String renderHtmlContent( String text, String footer, User sender ) === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/setting/DefaultSystemSettingManager.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/setting/DefaultSystemSettingManager.java 2016-01-06 18:19:42 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/setting/DefaultSystemSettingManager.java 2016-01-06 18:37:13 +0000 @@ -28,27 +28,27 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import com.google.common.cache.Cache; -import com.google.common.cache.CacheBuilder; -import com.google.common.collect.Lists; +import java.io.Serializable; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; + import org.apache.commons.lang3.StringUtils; -import org.hisp.dhis.external.conf.ConfigurationKey; -import org.hisp.dhis.external.conf.DhisConfigurationProvider; import org.hisp.dhis.i18n.I18n; import org.hisp.dhis.i18n.I18nManager; import org.hisp.dhis.system.util.ValidationUtils; -import org.jasypt.encryption.pbe.PBEStringEncryptor; -import org.jasypt.encryption.pbe.StandardPBEStringEncryptor; -import org.jasypt.salt.StringFixedSaltGenerator; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; -import javax.annotation.Resource; -import java.io.Serializable; -import java.util.*; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.TimeUnit; -import java.util.stream.Collectors; +import com.google.common.cache.Cache; +import com.google.common.cache.CacheBuilder; +import com.google.common.collect.Lists; /** * @author Stian Strandli @@ -66,10 +66,7 @@ .initialCapacity( 200 ) .maximumSize( 400 ) .build(); - - private static final Map NAME_KEY_MAP = Lists.newArrayList( - SettingKey.values() ).stream().collect( Collectors.toMap( SettingKey::getName, e -> e ) ); - + // ------------------------------------------------------------------------- // Dependencies // ------------------------------------------------------------------------- @@ -91,9 +88,6 @@ @Autowired private I18nManager i18nManager; - @Resource( name = "stringEncryptor" ) - private PBEStringEncryptor pbeStringEncryptor; - // ------------------------------------------------------------------------- // SystemSettingManager implementation // ------------------------------------------------------------------------- @@ -102,14 +96,9 @@ public void saveSystemSetting( String name, Serializable value ) { SETTING_CACHE.invalidate( name ); - + SystemSetting setting = systemSettingStore.getByName( name ); - if ( NAME_KEY_MAP.get( name ).getConfidential() ) - { - value = pbeStringEncryptor.encrypt( value.toString() ); - } - if ( setting == null ) { setting = new SystemSetting(); @@ -129,7 +118,7 @@ @Override public void saveSystemSetting( SettingKey setting, Serializable value ) - { + { saveSystemSetting( setting.getName(), value ); } @@ -141,7 +130,7 @@ if ( setting != null ) { SETTING_CACHE.invalidate( name ); - + systemSettingStore.delete( setting ); } } @@ -157,13 +146,6 @@ { SystemSetting setting = systemSettingStore.getByName( name ); - if ( NAME_KEY_MAP.get( name ).getConfidential() ) - { - - setting.setValue( pbeStringEncryptor.decrypt( setting.getValue().toString() ) ); - - } - return setting != null && setting.hasValue() ? setting.getValue() : null; } @@ -172,9 +154,8 @@ { try { - Optional value = SETTING_CACHE.get( setting.getName(), - () -> getSystemSettingOptional( setting.getName(), setting.getDefaultValue() ) ); - + Optional value = SETTING_CACHE.get( setting.getName(), () -> getSystemSettingOptional( setting.getName(), setting.getDefaultValue() ) ); + return value.orElse( null ); } catch ( ExecutionException ignored ) @@ -192,49 +173,31 @@ private Optional getSystemSettingOptional( String name, Serializable defaultValue ) { SystemSetting setting = systemSettingStore.getByName( name ); - - if ( setting != null && setting.hasValue() ) - { - return NAME_KEY_MAP.get( name ).getConfidential() ? - Optional.of( pbeStringEncryptor.decrypt( setting.getValue().toString() ) ) : - Optional.of( setting.getValue() ); - } - else - { - return Optional.ofNullable( defaultValue ); - } - + + return setting != null && setting.hasValue() ? Optional.of( setting.getValue() ) : Optional.ofNullable( defaultValue ); } @Override public List getAllSystemSettings() { - - /* - * Remove confidential settings from this list! - */ - return systemSettingStore.getAll().stream() - .filter( systemSetting -> !NAME_KEY_MAP.containsKey( systemSetting.getName() ) || - !NAME_KEY_MAP.get( systemSetting.getName() ).getConfidential() ) - .collect( Collectors.toList() ); - + return systemSettingStore.getAll(); } - + @Override public Map getSystemSettingsAsMap() { Map settingsMap = new HashMap<>(); - + Collection systemSettings = getAllSystemSettings(); for ( SystemSetting systemSetting : systemSettings ) { Serializable settingValue = systemSetting.getValue(); - + if ( settingValue == null ) { Optional setting = SettingKey.getByName( systemSetting.getName() ); - + if ( setting.isPresent() ) { settingValue = setting.get().getDefaultValue(); @@ -259,13 +222,13 @@ if ( settingValue == null ) { Optional setting = SettingKey.getByName( name ); - + if ( setting.isPresent() ) { settingValue = setting.get().getDefaultValue(); } } - + if ( settingValue != null ) { map.put( name, settingValue ); @@ -279,26 +242,26 @@ public Map getSystemSettings( Collection settings ) { Map map = new HashMap<>(); - + for ( SettingKey setting : settings ) { Serializable value = getSystemSetting( setting ); - + if ( value != null ) { map.put( setting.getName(), value ); } } - + return map; } - + @Override public void invalidateCache() { SETTING_CACHE.invalidateAll(); } - + // ------------------------------------------------------------------------- // Specific methods // ------------------------------------------------------------------------- @@ -309,24 +272,24 @@ Collections.sort( flags ); return flags; } - + @Override public List getFlagObjects() { Collections.sort( flags ); - + I18n i18n = i18nManager.getI18n(); - + List list = Lists.newArrayList(); - + for ( String flag : flags ) { String name = i18n.getString( flag ); String file = flag + ".png"; - + list.add( new StyleObject( name, flag, file ) ); } - + return list; } @@ -409,8 +372,7 @@ @Override public boolean isOpenIdConfigured() { - return getSystemSetting( SettingKey.OPENID_PROVIDER ) != null && - getSystemSetting( SettingKey.OPENID_PROVIDER_LABEL ) != null; + return getSystemSetting( SettingKey.OPENID_PROVIDER ) != null && getSystemSetting( SettingKey.OPENID_PROVIDER_LABEL ) != null; } @Override @@ -424,11 +386,4 @@ { return (Integer) getSystemSetting( SettingKey.CREDENTIALS_EXPIRES ); } - - @Override - public boolean isConfidential( String name ) - { - return NAME_KEY_MAP.containsKey( name ) && NAME_KEY_MAP.get( name ).getConfidential(); - } - } === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/ConfigurationPopulator.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/ConfigurationPopulator.java 2016-01-06 18:19:09 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/ConfigurationPopulator.java 2016-01-06 18:37:13 +0000 @@ -54,6 +54,7 @@ public void execute() throws Exception { + checkSecurityConfiguration(); Configuration config = configurationService.getConfiguration(); === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml 2016-01-06 18:19:42 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml 2016-01-06 18:37:13 +0000 @@ -876,6 +876,7 @@ + === modified file 'dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/synch/DefaultSynchronizationManager.java' --- dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/synch/DefaultSynchronizationManager.java 2016-01-06 18:19:09 +0000 +++ dhis-2/dhis-services/dhis-service-dxf2/src/main/java/org/hisp/dhis/dxf2/synch/DefaultSynchronizationManager.java 2016-01-06 18:37:13 +0000 @@ -102,6 +102,9 @@ @Autowired private RestTemplate restTemplate; + @Autowired + private DhisConfigurationProvider dhisConfigurationProvider; + // ------------------------------------------------------------------------- // SynchronizatonManager implementation // ------------------------------------------------------------------------- @@ -116,14 +119,14 @@ return new AvailabilityStatus( false, "Remote server is not configured" ); } - String url = systemSettingManager.getSystemSetting( SettingKey.REMOTE_INSTANCE_URL ) + PING_PATH; - - log.info( "Remote server ping URL: " + url + ", username: " + systemSettingManager.getSystemSetting( - SettingKey.REMOTE_INSTANCE_USERNAME ) ); - - HttpEntity request = getBasicAuthRequestEntity( (String) systemSettingManager.getSystemSetting( - SettingKey.REMOTE_INSTANCE_USERNAME ), (String) systemSettingManager.getSystemSetting( - SettingKey.REMOTE_INSTANCE_PASSWORD ) ); + String url = dhisConfigurationProvider.getProperty( ConfigurationKey.REMOTE_INSTANCE_URL ) + PING_PATH; + + log.info( "Remote server ping URL: " + url + ", username: " + dhisConfigurationProvider.getProperty( + ConfigurationKey.REMOTE_INSTANCE_USERNAME ) ); + + HttpEntity request = getBasicAuthRequestEntity( dhisConfigurationProvider.getProperty( + ConfigurationKey.REMOTE_INSTANCE_USERNAME ), dhisConfigurationProvider.getProperty( + ConfigurationKey.REMOTE_INSTANCE_PASSWORD ) ); ResponseEntity response = null; HttpStatus sc = null; @@ -214,8 +217,8 @@ final Configuration config = configurationService.getConfiguration(); - String url = systemSettingManager.getSystemSetting( - SettingKey.REMOTE_INSTANCE_URL ) + "/api/dataValueSets"; + String url = dhisConfigurationProvider.getProperty( ConfigurationKey.REMOTE_INSTANCE_URL ) + + "/api/dataValueSets"; log.info( "Remote server POST URL: " + url ); @@ -227,12 +230,10 @@ { request.getHeaders().setContentType( MediaType.APPLICATION_JSON ); request.getHeaders().add( HEADER_AUTHORIZATION, - CodecUtils.getBasicAuthString( - (String) systemSettingManager.getSystemSetting( - SettingKey.REMOTE_INSTANCE_USERNAME ), - (String) systemSettingManager.getSystemSetting( - SettingKey.REMOTE_INSTANCE_PASSWORD ) ) ); - + CodecUtils.getBasicAuthString( dhisConfigurationProvider.getProperty( + ConfigurationKey.REMOTE_INSTANCE_USERNAME ), + dhisConfigurationProvider.getProperty( + ConfigurationKey.REMOTE_INSTANCE_PASSWORD ) ) ); dataValueSetService .writeDataValueSetJson( lastSuccessTime, request.getBody(), new IdSchemes() ); } @@ -315,17 +316,16 @@ */ private boolean isRemoteServerConfigured( Configuration config ) { - if ( trimToNull( (String) systemSettingManager.getSystemSetting( - SettingKey.REMOTE_INSTANCE_URL ) ) == + if ( trimToNull( dhisConfigurationProvider.getProperty( ConfigurationKey.REMOTE_INSTANCE_URL ) ) == null ) { log.info( "Remote server URL not set" ); return false; } - if ( trimToNull( (String) systemSettingManager.getSystemSetting( SettingKey.REMOTE_INSTANCE_USERNAME ) ) == + if ( trimToNull( dhisConfigurationProvider.getProperty( ConfigurationKey.REMOTE_INSTANCE_USERNAME ) ) == null || - trimToNull( (String) systemSettingManager.getSystemSetting( SettingKey.REMOTE_INSTANCE_URL ) ) == + trimToNull( dhisConfigurationProvider.getProperty( ConfigurationKey.REMOTE_INSTANCE_URL ) ) == null ) { log.info( "Remote server username or password not set" ); @@ -345,4 +345,4 @@ headers.set( HEADER_AUTHORIZATION, CodecUtils.getBasicAuthString( username, password ) ); return new HttpEntity<>( headers ); } -} \ No newline at end of file +} === modified file 'dhis-2/dhis-support/dhis-support-external/src/main/java/org/hisp/dhis/external/conf/ConfigurationKey.java' --- dhis-2/dhis-support/dhis-support-external/src/main/java/org/hisp/dhis/external/conf/ConfigurationKey.java 2016-01-06 18:19:09 +0000 +++ dhis-2/dhis-support/dhis-support-external/src/main/java/org/hisp/dhis/external/conf/ConfigurationKey.java 2016-01-06 18:37:13 +0000 @@ -51,7 +51,17 @@ FILE_STORE_CONTAINER( "filestore.container", "files" ), FILE_STORE_LOCATION( "filestore.location" ), FILE_STORE_IDENTITY( "filestore.identity", "" ), - FILE_STORE_SECRET( "filestore.secret", "" ); + FILE_STORE_SECRET( "filestore.secret", "" ), + SMTP_HOSTNAME( "smtp.hostname", "" ), + SMTP_PORT( "smtp.port", "587" ), + SMTP_TLS( "smtp.tls", "true" ), + SMTP_USERNAME( "smtp.username", "" ), + SMTP_PASSWORD( "smtp.password", "" ), + SMTP_SENDER( "smtp.sender", "" ), + REMOTE_INSTANCE_URL( "remote_instance.url", "" ), + REMOTE_INSTANCE_USERNAME( "remote_instance.username", "" ), + REMOTE_INSTANCE_PASSWORD( "remote_instance.password", "" ); + private final String key; === modified file 'dhis-2/dhis-support/dhis-support-hibernate/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-support/dhis-support-hibernate/src/main/resources/META-INF/dhis/beans.xml 2016-01-06 18:19:09 +0000 +++ dhis-2/dhis-support/dhis-support-hibernate/src/main/resources/META-INF/dhis/beans.xml 2016-01-06 18:37:13 +0000 @@ -93,11 +93,6 @@ - - - - - @@ -123,7 +118,7 @@ - + === modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/ConfigurationController.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/ConfigurationController.java 2016-01-06 18:19:42 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/ConfigurationController.java 2016-01-06 18:37:13 +0000 @@ -46,8 +46,6 @@ import org.hisp.dhis.organisationunit.OrganisationUnitLevel; import org.hisp.dhis.period.PeriodService; import org.hisp.dhis.period.PeriodType; -import org.hisp.dhis.setting.SettingKey; -import org.hisp.dhis.setting.SystemSettingManager; import org.hisp.dhis.user.UserAuthorityGroup; import org.hisp.dhis.user.UserGroup; import org.hisp.dhis.webapi.controller.exception.NotFoundException; @@ -73,7 +71,7 @@ @Autowired private DhisConfigurationProvider config; - + @Autowired private IdentifiableObjectManager identifiableObjectManager; @@ -83,9 +81,6 @@ @Autowired private RenderService renderService; - @Autowired - private SystemSettingManager systemSettingManager; - // ------------------------------------------------------------------------- // Resources // ------------------------------------------------------------------------- @@ -95,7 +90,7 @@ { return setModel( model, configurationService.getConfiguration() ); } - + @PreAuthorize( "hasRole('ALL') or hasRole('F_SYSTEM_SETTING')" ) @ResponseStatus( value = HttpStatus.OK ) @RequestMapping( value = "/systemId", method = RequestMethod.GET ) @@ -243,7 +238,7 @@ } Configuration config = configurationService.getConfiguration(); - + periodType = periodService.reloadPeriodType( periodType ); config.setInfrastructuralPeriodType( periodType ); @@ -305,15 +300,14 @@ @RequestMapping( value = "/remoteServerUrl", method = RequestMethod.GET ) public String getRemoteServerUrl( Model model, HttpServletRequest request ) { - return setModel( model, systemSettingManager.getSystemSetting( - SettingKey.REMOTE_INSTANCE_URL ) ); + return setModel( model, config.getProperty( ConfigurationKey.REMOTE_INSTANCE_URL ) ); } + @RequestMapping( value = "/remoteServerUsername", method = RequestMethod.GET ) public String getRemoteServerUsername( Model model, HttpServletRequest request ) { - return setModel( model, systemSettingManager.getSystemSetting( - SettingKey.REMOTE_INSTANCE_USERNAME ) ); + return setModel( model, config.getProperty( ConfigurationKey.REMOTE_INSTANCE_USERNAME) ); } @RequestMapping( value = "/corsWhitelist", method = RequestMethod.GET, produces = "application/json" ) @@ -321,8 +315,8 @@ { return setModel( model, configurationService.getConfiguration().getCorsWhitelist() ); } - - @SuppressWarnings( "unchecked" ) + + @SuppressWarnings("unchecked") @PreAuthorize( "hasRole('ALL') or hasRole('F_SYSTEM_SETTING')" ) @ResponseStatus( value = HttpStatus.OK ) @RequestMapping( value = "/corsWhitelist", method = RequestMethod.POST, consumes = "application/json" ) @@ -330,14 +324,14 @@ throws IOException { Set corsWhitelist = renderService.fromJson( input, Set.class ); - + Configuration config = configurationService.getConfiguration(); - + config.setCorsWhitelist( corsWhitelist ); - + configurationService.setConfiguration( config ); } - + @RequestMapping( value = "/systemBaseUrl", method = RequestMethod.GET ) public String getSystemBaseUrl( Model model, HttpServletRequest request ) { === modified file 'dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/SystemSettingController.java' --- dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/SystemSettingController.java 2016-01-06 18:19:42 +0000 +++ dhis-2/dhis-web/dhis-web-api/src/main/java/org/hisp/dhis/webapi/controller/SystemSettingController.java 2016-01-06 18:37:13 +0000 @@ -32,7 +32,6 @@ import java.io.Serializable; import java.util.Map; import java.util.Set; -import java.util.function.Predicate; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -74,15 +73,13 @@ @Autowired private WebMessageService webMessageService; - @RequestMapping( value = "/{key}", method = RequestMethod.POST, consumes = { ContextUtils.CONTENT_TYPE_TEXT, - ContextUtils.CONTENT_TYPE_HTML } ) + @RequestMapping( value = "/{key}", method = RequestMethod.POST, consumes = { ContextUtils.CONTENT_TYPE_TEXT, ContextUtils.CONTENT_TYPE_HTML } ) @PreAuthorize( "hasRole('ALL') or hasRole('F_SYSTEM_SETTING')" ) public void setSystemSetting( @PathVariable( value = "key" ) String key, @RequestParam( value = "value", required = false ) String value, @RequestBody( required = false ) String valuePayload, - HttpServletResponse response, HttpServletRequest request ) - throws WebMessageException + HttpServletResponse response, HttpServletRequest request ) throws WebMessageException { if ( key == null ) { @@ -91,25 +88,21 @@ if ( value == null && valuePayload == null ) { - throw new WebMessageException( - WebMessageUtils.conflict( "Value must be specified as query param or as payload" ) ); + throw new WebMessageException( WebMessageUtils.conflict( "Value must be specified as query param or as payload" ) ); } value = ObjectUtils.firstNonNull( value, valuePayload ); - + Serializable valueObject = SettingKey.getAsRealClass( key, value ); - + systemSettingManager.saveSystemSetting( key, valueObject ); - webMessageService - .send( WebMessageUtils.ok( "System setting " + key + " set as value '" + valueObject + "'." ), response, - request ); + webMessageService.send( WebMessageUtils.ok( "System setting " + key + " set as value '" + valueObject + "'." ), response, request ); } @RequestMapping( method = RequestMethod.POST, consumes = { ContextUtils.CONTENT_TYPE_JSON } ) @PreAuthorize( "hasRole('ALL') or hasRole('F_SYSTEM_SETTING')" ) - public void setSystemSetting( @RequestBody Map settings, HttpServletResponse response, - HttpServletRequest request ) + public void setSystemSetting( @RequestBody Map settings, HttpServletResponse response, HttpServletRequest request ) { for ( String key : settings.keySet() ) { @@ -120,30 +113,16 @@ } @RequestMapping( value = "/{key}", method = RequestMethod.GET, produces = ContextUtils.CONTENT_TYPE_TEXT ) - public - @ResponseBody - String getSystemSettingAsText( @PathVariable( "key" ) String key ) + public @ResponseBody String getSystemSettingAsText( @PathVariable( "key" ) String key ) { - if ( systemSettingManager.isConfidential( key ) ) - { - return ""; - } - else - { - Serializable setting = systemSettingManager.getSystemSetting( key ); + Serializable setting = systemSettingManager.getSystemSetting( key ); - return setting != null ? String.valueOf( setting ) : null; - } + return setting != null ? String.valueOf( setting ) : null; } - @RequestMapping( method = RequestMethod.GET, produces = { ContextUtils.CONTENT_TYPE_JSON, - ContextUtils.CONTENT_TYPE_HTML } ) - public void getSystemSettingsJson( @RequestParam( value = "key", required = false ) Set key, - HttpServletResponse response ) - throws IOException + @RequestMapping( method = RequestMethod.GET, produces = { ContextUtils.CONTENT_TYPE_JSON, ContextUtils.CONTENT_TYPE_HTML } ) + public void getSystemSettingsJson( @RequestParam( value = "key", required = false ) Set key, HttpServletResponse response ) throws IOException { - if ( key != null ) - key.removeIf( systemSettingManager::isConfidential ); response.setContentType( MediaType.APPLICATION_JSON_VALUE ); renderService.toJson( response.getOutputStream(), getSystemSettings( key ) ); } @@ -152,8 +131,7 @@ public void getSystemSettingsJsonP( @RequestParam( value = "key", required = false ) Set key, @RequestParam( defaultValue = "callback" ) String callback, - HttpServletResponse response ) - throws IOException + HttpServletResponse response ) throws IOException { response.setContentType( "application/javascript" ); renderService.toJsonP( response.getOutputStream(), getSystemSettings( key ), callback );