diff options
| author | Thomas Lenz <tlenz@iaik.tugraz.at> | 2016-01-22 10:41:05 +0100 | 
|---|---|---|
| committer | Thomas Lenz <tlenz@iaik.tugraz.at> | 2016-01-22 10:41:05 +0100 | 
| commit | 7fb5502e50ff4845c9fa3672d7efac74dc3e8fd8 (patch) | |
| tree | 57cd2bd036c03073c3085738012c3c360db4f389 /id/server/idserverlib | |
| parent | 1b68d46f1508b60285c82f61bd60817b3c1baee4 (diff) | |
| download | moa-id-spss-7fb5502e50ff4845c9fa3672d7efac74dc3e8fd8.tar.gz moa-id-spss-7fb5502e50ff4845c9fa3672d7efac74dc3e8fd8.tar.bz2 moa-id-spss-7fb5502e50ff4845c9fa3672d7efac74dc3e8fd8.zip | |
blacklist Microsoft SQL JDBC driver, because default online-application load operation does not work
  - Microsoft SQL does not allow len() method calls with a parameter of type text
Diffstat (limited to 'id/server/idserverlib')
| -rw-r--r-- | id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/PropertyBasedAuthConfigurationProvider.java | 28 | 
1 files changed, 26 insertions, 2 deletions
| diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/PropertyBasedAuthConfigurationProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/PropertyBasedAuthConfigurationProvider.java index 00d38eec9..d4620cd1a 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/PropertyBasedAuthConfigurationProvider.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/PropertyBasedAuthConfigurationProvider.java @@ -22,8 +22,14 @@ import org.springframework.context.ApplicationContext;  import org.springframework.context.support.ClassPathXmlApplicationContext;  import at.gv.egovernment.moa.id.auth.MOAIDAuthConstants; +import at.gv.egovernment.moa.id.commons.MOAIDConstants;  import at.gv.egovernment.moa.id.commons.config.MOAIDConfigurationConstants;  import at.gv.egovernment.moa.id.commons.config.persistence.MOAIDConfiguration; +import at.gv.egovernment.moa.id.commons.db.dao.config.deprecated.AuthComponentGeneral; +import at.gv.egovernment.moa.id.commons.db.dao.config.deprecated.MOASP; +import at.gv.egovernment.moa.id.commons.db.dao.config.deprecated.OnlineApplication; +import at.gv.egovernment.moa.id.commons.db.dao.config.deprecated.SecurityLayer; +import at.gv.egovernment.moa.id.commons.db.dao.config.deprecated.VerifyIdentityLink;  import at.gv.egovernment.moa.id.commons.utils.KeyValueUtils;  import at.gv.egovernment.moa.id.config.ConfigurationException;  import at.gv.egovernment.moa.id.config.ConfigurationProviderImpl; @@ -50,6 +56,8 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide  	private final Properties properties = new Properties();  	private ApplicationContext context = null; +	private boolean requireJDBCBackupImplementation = false; +	  	public PropertyBasedAuthConfigurationProvider() {  	} @@ -86,6 +94,20 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide  			AutowireCapableBeanFactory acbFactory = context.getAutowireCapableBeanFactory();  			acbFactory.autowireBean(this); +			//Some databases do not allow the selection of a lob in SQL where expression   +			String dbDriver = properties.getProperty("configuration.hibernate.connection.driver_class");					 +			if (MiscUtil.isNotEmpty(dbDriver)) { +				for (String el:MOAIDConstants.JDBC_DRIVER_NEEDS_WORKAROUND) { +					if (dbDriver.startsWith(el)) { +						requireJDBCBackupImplementation = true; +						Logger.info("JDBC driver '" + dbDriver  +						+ "' is blacklisted --> Switch to alternative DB access methode implementation."); +						 +					}					 +				}						 +			} +			 +			  		} catch (FileNotFoundException e) {  			throw new ConfigurationException("config.03", null, e); @@ -1012,9 +1034,11 @@ public class PropertyBasedAuthConfigurationProvider extends ConfigurationProvide  		Logger.trace("Get active OnlineApplication with ID " + id + " from database.");  		Map<String, String> oaConfig = null;  		try { -			//OracleDB does not allow the selection of a lob in SQL where expression   +			 +			//TODO: +			//Some databases do not allow the selection of a lob in SQL where expression    			String dbDriver = properties.getProperty("configuration.hibernate.connection.driver_class"); -			if (MiscUtil.isNotEmpty(dbDriver) && dbDriver.startsWith("oracle.jdbc.")) +			if (requireJDBCBackupImplementation)  				oaConfig = configuration.getOnlineApplicationBackupVersion(id);  			else | 
