2010-01-28 1 views
1

Я успешно настроил Glassfish для работы с JDBCrealm с использованием Basic Auth. Но он не работает на странице Jsp. Моя страница jsp проста, используя j_security_check и j_username и j_password. Он бросает меня на страницу UnAuthorizedAccess (страница с ошибкой входа). Странно, что он работает для базового auth, а не для формы. Что может быть потенциальной проблемой, кто-нибудь может сказать?JDBCrealm FORM основанная проблема. Но BASIC работает отлично!

Также структура требования таблицы JDBCrealm настолько уродлива, я имею в виду, почему она так ненормализована? что, если я хочу изменить структуру? как

Пользователи (Userid ИНТ, Имя пользователя VARCHAR (50), Парольпользователя VARCHAR (50))

Роли (Идентификатор роли INT, RoleName VARCHAR (20))

UsersXRoles (UsersXRolesId INT, UserId INT, Идентификатор роли int)

Как мне настроить это сейчас?

Заранее спасибо :)

+0

Умм ... как это не нормируется? У вас есть пользователи, у вас есть роли и таблица столов ManyToMany, UsersXRoles. Выглядит довольно хорошо для меня. –

+0

Вот что я говорю! Это структура, которую я хочу достичь: пользователей (Userid ИНТ Имя пользователя VARCHAR (50), Парольпользователя VARCHAR (50)) Роли (Идентификатор роли INT, RoleName VARCHAR (20)) UsersXRoles (UsersXRolesId INT, UserId Int , Идентификатор роль INT) Но JDBCrealm заставляет меня следовать этой структуре: создать таблицу пользователям ( user_name VARCHAR (15) NOT NULL первичного ключа, uSER_PASS VARCHAR (15) не нулевой ); создать таблицу user_roles ( user_name VARCHAR (15) NOT NULL, role_name VARCHAR (15) не равно нулю, первичный ключ (user_name, role_name) ); Как вы можете видеть, приведенная выше таблица не нормализована? – TCM

ответ

1

Вы можете создать нормированный базу данных и создать представление для Glassfish. У нас есть один и тот же макет, который вы описали в вашем посте и на наш взгляд выглядит следующим образом:

CREATE OR REPLACE VIEW v_user_role_relation AS 
SELECT u.username, u.password, g.groupname 
    FROM user_group_rel ugr 
    JOIN users u ON u.user_id = ugr.user_id 
    JOIN groups g ON g.group_id = ugr.group_id::numeric; 

Однако ваша вторая проблема может иметь много причин. Проверьте, определено ли ваше царство в конфигурации сервера, а не только в конфигурации по умолчанию (которая произошла со мной один раз).

Смежные вопросы