Вопрос

http: //www.docjar .com / HTML / API / орг / Apache / Catalina / область / JDBCRealm.java.html

Чтобы использовать этот JDBCRealm, нам нужны две таблицы: user и user_role.

user table - user_id, user_name, user_password
user_role table - user_id, role_id, user_name

Почему user_name требуется в таблице user_role, когда user_id присутствует в качестве внешнего ключа. JDBCRealm мог бы использовать запрос соединения для извлечения ролей или прямой запрос, если он хранит user_id из предыдущего запроса.

Это было полезно?

Решение

Вот документация Tomcat 6 для JDBCRealm .

user_id НЕ требуется ни в одной из таблиц, и role_id . В таблице users должны быть столбцы user_name и user_password ; Таблица role должна содержать столбцы user_name и role_name . Таблицы связаны через user_name .

Причина, по которой это делается (строка, а не числовые идентификаторы), заключается в том, что Principal имел имя в виде вызова String и isUserInRole () принимает имя роли как String .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top