Pregunta

Tengo una aplicación bastante normal Java EE que se ejecuta en JBoss. Se utiliza la autenticación de JBoss DatabaseLoginModule JAAS. También cuenta con la aplicación de la capa usuarios / roles en hibernación que son exactamente lo mismo.

Tengo una idea (que creo que es bastante útil para mí, de todos modos) para tener un bit de capacidad que puedo establecido en el objeto de licencia de software (no utilizar hibernación) que hace que todos los usuarios del usuario de sólo lectura. Esto me permite hacer una versión de solo lectura del producto por relicenciamiento él.

Lo que me gustaría hacer es volver a asignar las asociaciones de usuarios en base a un indicador booleano accesibles dentro del programa.

Así que normalmente obtenemos (mucho-mucho unirse a)

Usuario - * * UserRole -Función - * RoleActions

donde

user.roleid => role.id

Cuando se establece el valor booleano (un bit de capacidad establecido en la licencia de software)

Me gustaría JAAS para actuar como todos los usuarios se roleid = 1 cuando la licencia lo dice.

¿Alguna idea?

¿Fue útil?

Solución

Por la subclasificación DatabaseServerLoginModule puedo realizar comprobaciones adicionales. (En la licencia de software)

Trivialmente que pueda entonces

  1. Si ha caducado la licencia, dar a un usuario de solo lectura (las credenciales son fijos)

  2. Si la licencia tiene el conjunto de bit de capacidad de sólo lectura, dar al usuario de sólo lectura (las credenciales son fijos)

Desde el inicio de sesión ha sido interceptada, las operaciones de búsqueda del usuario Hibernate será para el usuario correcto.

Otros consejos

Tal vez me falta el barco aquí, pero ¿por qué no hacerlo mediante programación?

En User objeto, proporcionar un getter transitoria como getAuthenticatedRoles() que, además, filtrar lo Hibernate cargado. Menaje, hacer que el comprador original de la colección asignada protected, y utilizar sólo <=> de otro código Java.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top