Проблема аутентификации входа в HSQLDB - PullRequest
0 голосов
/ 22 февраля 2011

Привет! Я использую Spring для настройки источника данных базы данных hsqldb.моя весна bean:

<bean id="adapterDataSource" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
        <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
        <property name="url" value="jdbc:hsqldb:file:data/db/hsqldb.jar" />
        <property name="username" value="lmexadapterdba" />
        <property name="password" value="lmexadapterdba123#" />
</bean>

все хорошо в источнике данных, но когда я запускаю свой проект на сервере, это выдает мне ошибку:

java.sql.SQLException: User not found: LMEXADAPTERDBA
    at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
    at org.hsqldb.jdbc.jdbcConnection.<init>(Unknown Source)
    at org.hsqldb.jdbcDriver.getConnection(Unknown Source)
    at org.hsqldb.jdbcDriver.connect(Unknown Source)
    at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
    at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294)
    at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1266)
    at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1240)
    at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:882)
    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:113)
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:381)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:455)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:463)
    at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:471)
    at com.platysgroup.lmex.controller.LoginController.processLogin(LoginController.java:72)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)

Но у меня есть пользовательс именем lmexadapterdba, но в маленьком случае не в верхнем регистре.bca hsqldb преобразует его в верхний регистр, он не работает.Пожалуйста, помогите мне, как я могу решить эту проблему.

Спасибо.

1 Ответ

1 голос
/ 22 февраля 2011

В HSQLDB 2.x имя пользователя и пароли чувствительны к регистру.Вы должны использовать двойные кавычки для имени пользователя и одинарные кавычки для определения пароля:

CREATE USER "lmexadapterdba" PASSWORD 'lmexadapterdba123#'

Если вы не используете двойные кавычки, имя пользователя преобразуется в верхний регистр во время создания.

В HSQLDB 1.8 и более ранних версиях имя пользователя не чувствительно к регистру.Во время создания он преобразуется в верхний регистр.

...