Existe um bug no org.apache.catalina.realm.JDBCRealm?
-
06-07-2019 - |
Pergunta
http: //www.docjar .com / html / api / org / apache / Catalina / reino / JDBCRealm.java.html
Para usar este JDBCRealm precisamos de duas tabelas, usuário e USER_ROLE.
user table - user_id, user_name, user_password
user_role table - user_id, role_id, user_name
Por que user_name é exigido na tabela USER_ROLE quando user_id está lá como chave estrangeira. O JDBCRealm poderia ter usado uma consulta de junção aos papéis extrato ou uma consulta direta, bem como se ele armazena o user_id a partir da consulta anterior.
Solução
Aqui está Tomcat 6 documentação para JDBCRealm
.
user_id
NÃO é necessária em qualquer mesa, nem é role_id
. mesa users
deve ter user_name
e user_password
colunas; mesa roles
deve ter user_name
e role_name
colunas. As tabelas são ligados através de user_name
.
A razão é feito desta forma (string ids em vez numéricos) é porque Principal
tinha nome como um String
e chamada isUserInRole()
toma o nome papel como String
também.