Я использую библиотеку ESAPI для кодирования переменной имени в своем коде. И мой проект реализован весной.
ESAPI.encoder().encodeForSQL(новый OracleCodec(), имя);
import org.owasp.esapi.ESAPI;
import org.owasp.esapi.codecs.Codec;
import org.owasp.esapi.codecs.MySQLCodec;
import org.owasp.esapi.reference.DefaultEncoder;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
public class StringJdbcDao extends JdbcDaoSupport{
public void execute(){
BufferedReader r = new BufferedReader(new InputStreamReader(sqlDDL));
try {
// read the first line, skipping any '--' comment lines
boolean firstLine = true;
StringBuffer buf = new StringBuffer();
for (String line = r.readLine(); line != null; line = r.readLine()) {
**line = ESAPI.encoder().encodeForSQL(new MySQLCodec(MySQLCodec.MYSQL_MODE), line.trim());**
getSpringJdbcTemplate().execute(line);
}
}
Я получаю следующую ошибку.
org.springframework.beans.factory.BeanCreationException: ошибка при создании bean-компонента с именем «org.sakaiproject.genericdao.test.GenericDaoTarget», определенным в ресурсе пути к классу [spring-jdbc.xml]: не удалось вызвать метод инициализации; вложенным исключением является org.springframework.beans.factory.BeanInitializationException: инициализация DAO не удалась; вложенным исключением является org.owasp.esapi.errors.ConfigurationException: класс java.lang.reflect.InvocationTargetException SecurityConfiguration (org.owasp.esapi.reference.DefaultSecurityConfiguration) CTOR выдал исключение. в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473) в org.springframework.beansfactory.beans .support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) в java.security.AccessController.doPrivileged(собственный метод) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) в org. springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) в org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) в org.springframework.beans.factory.support .AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) в org.s pringframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)