Есть ли ошибка в org.apache.catalina.realm.JDBCRealm?
http://www.docjar.com/html/api/org/apache/catalina/realm/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 из предыдущего запроса.
1 ответ
Вот документация Tomcat 6 для JDBCRealm
,
user_id
НЕ требуется ни в таблице, ни в role_id
, users
стол должен иметь user_name
а также user_password
колонны; roles
стол должен иметь user_name
а также role_name
колонны. Таблицы связаны через user_name
,
Причина, по которой это делается так (строка, а не числовые идентификаторы), заключается в том, что Principal
имел имя как String
а также isUserInRole()
вызов принимает имя роли как String
также.