¿Hay algún error en org.apache.catalina.realm.JDBCRealm?
-
06-07-2019 - |
Pregunta
http: //www.docjar .com / html / api / org / apache / catalina / realm / JDBCRealm.java.html
Para usar este JDBCRealm necesitamos dos tablas, user y user_role.
user table - user_id, user_name, user_password
user_role table - user_id, role_id, user_name
Por qué se requiere user_name en la tabla user_role cuando user_id está allí como clave foránea. JDBCRealm podría haber utilizado una consulta de unión para extraer roles o una consulta directa también si almacena el user_id de la consulta anterior.
Solución
Aquí está documentación de Tomcat 6 para
user_id
NO se requiere en ninguna de las tablas, ni role_id
. La tabla users
debe tener columnas user_name
y user_password
; La tabla roles
debe tener columnas user_name
y role_name
. Las tablas están vinculadas a través de user_name
.
La razón por la que se hace de esta manera (cadena en lugar de identificadores numéricos) es porque Principal
tenía un nombre como String
y isUserInRole ()
call toma el nombre del rol como String
también.