Есть ли ошибка в org.apache.catalina.realm.JDBCRealm?
-
06-07-2019 - |
Вопрос
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
.