Область JDBC: GlassFish v2.1 = ОК;GlassFish v3 = ошибка с недопустимой причиной - PullRequest
0 голосов
/ 05 апреля 2010

В моем приложении J2EE 5 у меня есть защита на основе JDBC Realm с методом Form. По умолчанию используется метод шифрования MD5. База данных - PostgreSQL 8.4, установленная локально (или 8.3, доступная через lan).

Мое приложение отлично работало на сервере GlassFish v2.1 с PostgreSQL 8.3, но теперь мне нужно развернуть его на GlassFish v3. Я абсолютно уверен, что я выполнил все те же настройки на GFv3, как создание пула соединений (который пингуется без проблем), JDBC Resource и JDBC Realm.

Но на GFv3 я получаю исключение при входе в систему с «invaliduserreason», в то время как схема базы данных только что создана из рабочего сценария базы данных. Я проверил данные и ввел логин / пароль тысячу раз, и кажется, что данные в порядке.

Так, где я могу найти причину неработающей безопасности? Пожалуйста посоветуй.

NetBeans 6,8 Спасибо.

Ответы [ 6 ]

1 голос
/ 21 июня 2011

Установка алгоритма дайджеста на "нет" работала для меня. Я использую Glassfish 3.1 с Derby. В конфигурации области у меня есть имена таблиц в нижнем регистре, а userid и groupid являются столбцами в одной таблице, поэтому эти вещи не вызывают проблем в Derby.

1 голос
/ 01 апреля 2011

Попробуйте изменить имена таблиц базы данных на UPPERCASE. У меня была точно такая же проблема, как и у вас, и изменение имен таблиц в верхний регистр решило проблему для меня.

1 голос
/ 04 ноября 2010

Возможно, вы захотите увеличить регистрацию для системы безопасности. Перейдите в Настройки журнала -> Предупреждения журнала и установите имя журнала 'javax.enterprise.system.core.security' для отслеживания. Попробуйте еще раз и проверьте журналы.

1 голос
/ 25 августа 2010

У меня была такая же проблема здесь. Я решил установить журнал безопасности на лучший. Я видел, что jaas запрашивал базу данных в нижнем регистре, хотя я использовал верблюжью нотацию для именования своих полей в таблице postgresql.

Единственным решением, которое я нашел, было присвоение именам всей моей таблицы и полей строчными буквами на сервере Postgresql.

0 голосов
/ 06 февраля 2011

Вот хорошая статья о царстве безопасности jdbc в glassfish и о том, как его настроить: http://jugojava.blogspot.com/2011/02/jdbc-security-realm-with-glassfish-and.html

0 голосов
/ 07 июня 2010

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

...