Index: lams_central/src/java/org/lamsfoundation/lams/security/LDAPAuthenticator.java =================================================================== diff -u -r3920fca37b6f52d187d97b632a22adc545ae0492 -r0829af2da97bb996efba5faba286ead43c28b5d5 --- lams_central/src/java/org/lamsfoundation/lams/security/LDAPAuthenticator.java (.../LDAPAuthenticator.java) (revision 3920fca37b6f52d187d97b632a22adc545ae0492) +++ lams_central/src/java/org/lamsfoundation/lams/security/LDAPAuthenticator.java (.../LDAPAuthenticator.java) (revision 0829af2da97bb996efba5faba286ead43c28b5d5) @@ -103,10 +103,6 @@ String securityProtocol = Configuration.get(ConfigurationKeys.LDAP_SECURITY_PROTOCOL); if (StringUtils.equals("ssl", securityProtocol)) { env.setProperty(Context.SECURITY_PROTOCOL, securityProtocol); - // FIXME: synchronization issue: dynamically load certificate into - // system instead of overwritting it. - System.setProperty("javax.net.ssl.trustStore", Configuration.get(ConfigurationKeys.LDAP_TRUSTSTORE_PATH)); - System.setProperty("javax.net.ssl.trustStorePassword", Configuration.get(ConfigurationKeys.LDAP_TRUSTSTORE_PASSWORD)); } boolean isValid = false; Index: lams_common/db/sql/insert_lams_unix_config_data.sql =================================================================== diff -u -r7f3b017b1b76e357a69fddc67f2a859c08470f5d -r0829af2da97bb996efba5faba286ead43c28b5d5 --- lams_common/db/sql/insert_lams_unix_config_data.sql (.../insert_lams_unix_config_data.sql) (revision 7f3b017b1b76e357a69fddc67f2a859c08470f5d) +++ lams_common/db/sql/insert_lams_unix_config_data.sql (.../insert_lams_unix_config_data.sql) (revision 0829af2da97bb996efba5faba286ead43c28b5d5) @@ -119,10 +119,10 @@ values ('LDAPSecurityProtocol','', 'config.ldap.security.protocol', 'config.header.ldap', 'STRING', 0); insert into lams_configuration (config_key, config_value, description_key, header_name, format, required) -values ('LDAPTruststorePath','', 'config.ldap.truststore.path', 'config.header.ldap', 'STRING', 0); +values ('TruststorePath','', 'config.ldap.truststore.path', 'config.header.system', 'STRING', 0); insert into lams_configuration (config_key, config_value, description_key, header_name, format, required) -values ('LDAPTruststorePassword','', 'config.ldap.truststore.password', 'config.header.ldap', 'STRING', 0); +values ('TruststorePassword','', 'config.ldap.truststore.password', 'config.header.system', 'STRING', 0); insert into lams_configuration (config_key, config_value, description_key, header_name, format, required) values ('LDAPLoginAttr','uid', 'admin.user.login', 'config.header.ldap.attributes', 'STRING', 0); Index: lams_common/db/sql/insert_lams_windows_config_data.sql =================================================================== diff -u -r7f3b017b1b76e357a69fddc67f2a859c08470f5d -r0829af2da97bb996efba5faba286ead43c28b5d5 --- lams_common/db/sql/insert_lams_windows_config_data.sql (.../insert_lams_windows_config_data.sql) (revision 7f3b017b1b76e357a69fddc67f2a859c08470f5d) +++ lams_common/db/sql/insert_lams_windows_config_data.sql (.../insert_lams_windows_config_data.sql) (revision 0829af2da97bb996efba5faba286ead43c28b5d5) @@ -119,10 +119,10 @@ values ('LDAPSecurityProtocol','', 'config.ldap.security.protocol', 'config.header.ldap', 'STRING', 0); insert into lams_configuration (config_key, config_value, description_key, header_name, format, required) -values ('LDAPTruststorePath','', 'config.ldap.truststore.path', 'config.header.ldap', 'STRING', 0); +values ('TruststorePath','', 'config.ldap.truststore.path', 'config.header.system', 'STRING', 0); insert into lams_configuration (config_key, config_value, description_key, header_name, format, required) -values ('LDAPTruststorePassword','', 'config.ldap.truststore.password', 'config.header.ldap', 'STRING', 0); +values ('TruststorePassword','', 'config.ldap.truststore.password', 'config.header.system', 'STRING', 0); insert into lams_configuration (config_key, config_value, description_key, header_name, format, required) values ('LDAPLoginAttr','uid', 'admin.user.login', 'config.header.ldap.attributes', 'STRING', 0); Index: lams_common/db/sql/insert_rams_unix_config_data.sql =================================================================== diff -u -r467278377e81fd19a4ee4bb392b1c37daaa1c8d6 -r0829af2da97bb996efba5faba286ead43c28b5d5 --- lams_common/db/sql/insert_rams_unix_config_data.sql (.../insert_rams_unix_config_data.sql) (revision 467278377e81fd19a4ee4bb392b1c37daaa1c8d6) +++ lams_common/db/sql/insert_rams_unix_config_data.sql (.../insert_rams_unix_config_data.sql) (revision 0829af2da97bb996efba5faba286ead43c28b5d5) @@ -119,10 +119,10 @@ values ('LDAPSecurityProtocol','', 'config.ldap.security.protocol', 'config.header.ldap', 'STRING', 0); insert into lams_configuration (config_key, config_value, description_key, header_name, format, required) -values ('LDAPTruststorePath','', 'config.ldap.truststore.path', 'config.header.ldap', 'STRING', 0); +values ('TruststorePath','', 'config.ldap.truststore.path', 'config.header.system', 'STRING', 0); insert into lams_configuration (config_key, config_value, description_key, header_name, format, required) -values ('LDAPTruststorePassword','', 'config.ldap.truststore.password', 'config.header.ldap', 'STRING', 0); +values ('TruststorePassword','', 'config.ldap.truststore.password', 'config.header.system', 'STRING', 0); insert into lams_configuration (config_key, config_value, description_key, header_name, format, required) values ('LDAPLoginAttr','uid', 'admin.user.login', 'config.header.ldap.attributes', 'STRING', 0); Index: lams_common/db/sql/insert_rams_windows_config_data.sql =================================================================== diff -u -r467278377e81fd19a4ee4bb392b1c37daaa1c8d6 -r0829af2da97bb996efba5faba286ead43c28b5d5 --- lams_common/db/sql/insert_rams_windows_config_data.sql (.../insert_rams_windows_config_data.sql) (revision 467278377e81fd19a4ee4bb392b1c37daaa1c8d6) +++ lams_common/db/sql/insert_rams_windows_config_data.sql (.../insert_rams_windows_config_data.sql) (revision 0829af2da97bb996efba5faba286ead43c28b5d5) @@ -119,10 +119,10 @@ values ('LDAPSecurityProtocol','', 'config.ldap.security.protocol', 'config.header.ldap', 'STRING', 0); insert into lams_configuration (config_key, config_value, description_key, header_name, format, required) -values ('LDAPTruststorePath','', 'config.ldap.truststore.path', 'config.header.ldap', 'STRING', 0); +values ('TruststorePath','', 'config.ldap.truststore.path', 'config.header.system', 'STRING', 0); insert into lams_configuration (config_key, config_value, description_key, header_name, format, required) -values ('LDAPTruststorePassword','', 'config.ldap.truststore.password', 'config.header.ldap', 'STRING', 0); +values ('TruststorePassword','', 'config.ldap.truststore.password', 'config.header.system', 'STRING', 0); insert into lams_configuration (config_key, config_value, description_key, header_name, format, required) values ('LDAPLoginAttr','uid', 'admin.user.login', 'config.header.ldap.attributes', 'STRING', 0); Index: lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch0013_updateFrom21.sql =================================================================== diff -u -ra88f2279fe15ee02e37ffecc5a0778ec6c4c8485 -r0829af2da97bb996efba5faba286ead43c28b5d5 --- lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch0013_updateFrom21.sql (.../patch0013_updateFrom21.sql) (revision a88f2279fe15ee02e37ffecc5a0778ec6c4c8485) +++ lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch0013_updateFrom21.sql (.../patch0013_updateFrom21.sql) (revision 0829af2da97bb996efba5faba286ead43c28b5d5) @@ -63,8 +63,12 @@ -- LDEV-1581 Add a collumn to the lams_grouping table for learner's choice grouping ALTER TABLE lams_grouping ADD COLUMN equal_number_of_learners_per_group TINYINT DEFAULT 0; +-- LDEV-2006 - make configuration keys truststorePath and truststorePassword system wide +UPDATE lams_configuration SET config_key='TruststorePath' WHERE config_key='LDAPTruststorePath'; +UPDATE lams_configuration SET config_key='TruststorePassword' WHERE config_key='LDAPTruststorePassword'; + -- Update the configuration table to have the current version of LAMS UPDATE lams_configuration SET config_value='2.2' WHERE config_key='Version'; UPDATE lams_configuration SET config_value='2.2.0.200811310000' WHERE config_key='AuthoringClientVersion' OR config_key='MonitorClientVersion' OR config_key='LearnerClientVersion' OR config_key='ServerVersionNumber'; Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/LdapService.java =================================================================== diff -u -r7ab9e2377fd1ff4c3c5554bd1f6dffe3384f6f9a -r0829af2da97bb996efba5faba286ead43c28b5d5 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/LdapService.java (.../LdapService.java) (revision 7ab9e2377fd1ff4c3c5554bd1f6dffe3384f6f9a) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/LdapService.java (.../LdapService.java) (revision 0829af2da97bb996efba5faba286ead43c28b5d5) @@ -438,10 +438,6 @@ String securityProtocol = Configuration.get(ConfigurationKeys.LDAP_SECURITY_PROTOCOL); if (StringUtils.equals("ssl", securityProtocol)) { env.setProperty(Context.SECURITY_PROTOCOL, securityProtocol); - // FIXME: synchronization issue: dynamically load certificate into - // system instead of overwritting it. - System.setProperty("javax.net.ssl.trustStore", Configuration.get(ConfigurationKeys.LDAP_TRUSTSTORE_PATH)); - System.setProperty("javax.net.ssl.trustStorePassword", Configuration.get(ConfigurationKeys.LDAP_TRUSTSTORE_PASSWORD)); } // get base DN/s to search on Index: lams_common/src/java/org/lamsfoundation/lams/util/Configuration.java =================================================================== diff -u -rad026ddd7fc5c6b95cc3ab9c248ccdff4a493c91 -r0829af2da97bb996efba5faba286ead43c28b5d5 --- lams_common/src/java/org/lamsfoundation/lams/util/Configuration.java (.../Configuration.java) (revision ad026ddd7fc5c6b95cc3ab9c248ccdff4a493c91) +++ lams_common/src/java/org/lamsfoundation/lams/util/Configuration.java (.../Configuration.java) (revision 0829af2da97bb996efba5faba286ead43c28b5d5) @@ -29,6 +29,7 @@ import java.util.List; import java.util.Map; +import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.lamsfoundation.lams.config.ConfigurationItem; import org.lamsfoundation.lams.config.dao.hibernate.ConfigurationDAO; @@ -72,6 +73,14 @@ Iterator it = mapitems.iterator(); while(it.hasNext()) { ConfigurationItem item = (ConfigurationItem) it.next(); + + // init ssl truststore path and password + if (StringUtils.equals(item.getKey(), ConfigurationKeys.TRUSTSTORE_PATH)) { + setSystemProperty(item.getKey(), item.getValue()); + } else if (StringUtils.equals(item.getKey(), ConfigurationKeys.TRUSTSTORE_PASSWORD)) { + setSystemProperty(item.getKey(), item.getValue()); + } + itemsmap.put(item.getKey(), item); } } @@ -141,6 +150,9 @@ } public void persistUpdate() { + // update ssl truststore path and password + setSystemProperty(ConfigurationKeys.TRUSTSTORE_PATH, get(ConfigurationKeys.TRUSTSTORE_PATH)); + setSystemProperty(ConfigurationKeys.TRUSTSTORE_PASSWORD, get(ConfigurationKeys.TRUSTSTORE_PASSWORD)); configurationDAO.insertOrUpdateAll(items.values()); } @@ -150,4 +162,14 @@ + ( items!=null ? items.toString() : "none" ) ; } + // update jvm system property + private void setSystemProperty(String key, String value) { + if (StringUtils.isBlank(key)) { + // use default + System.clearProperty(key); + } else { + System.setProperty(key, value); + } + } + } Index: lams_common/src/java/org/lamsfoundation/lams/util/ConfigurationKeys.java =================================================================== diff -u -r0c2c50f423b257e4c110335200a6e1c93d0eda58 -r0829af2da97bb996efba5faba286ead43c28b5d5 --- lams_common/src/java/org/lamsfoundation/lams/util/ConfigurationKeys.java (.../ConfigurationKeys.java) (revision 0c2c50f423b257e4c110335200a6e1c93d0eda58) +++ lams_common/src/java/org/lamsfoundation/lams/util/ConfigurationKeys.java (.../ConfigurationKeys.java) (revision 0829af2da97bb996efba5faba286ead43c28b5d5) @@ -147,9 +147,9 @@ public static String LDAP_SECURITY_PROTOCOL = "LDAPSecurityProtocol"; - public static String LDAP_TRUSTSTORE_PATH = "LDAPTruststorePath"; + public static String TRUSTSTORE_PATH = "TruststorePath"; - public static String LDAP_TRUSTSTORE_PASSWORD = "LDAPTruststorePassword"; + public static String TRUSTSTORE_PASSWORD = "TruststorePassword"; public static String LDAP_LOGIN_ATTR = "LDAPLoginAttr";