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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top