2012-09-01 65 views
5

Estoy tratando de trazar mentalmente Java EE 6 conceptos de seguridad de grupos, usuarios y papeles a los conceptos de la Apache Shiro 's roles, usuarios y permisos y entiendo que son incompatibles.Java EE 6 grupos, usuarios y roles -vs- de Shiro roles, usuarios y permisos

Lectura a través de los Java EE 6 security tutorial parece que el modelo es demasiado restrictiva: grupos están configurados en una, no por aplicación, cada servidor que realmente nos deja con sólo dos conceptos flexibles para expresar el mecanismo de autorización: usuarios y roles, que existen en una relación simple de 1 a N. En contraste modelo de papeles, usuarios y permisos de Shiro es mucho más dinámica, ya que le permite a uno hardcode permisos en el código anotado y modificar la asignación de papeles a permisos en tiempo de ejecución como las cosas cambiar o cuando se introducen nuevos roles. No veo cómo se puede hacer lo mismo con la autorización gestionada por contenedor según el modelo Java EE 6.

¿Es correcto mi entendimiento? Porque eso implicaría que uno realmente no puede ir muy lejos con la autorización administrada por contenedor.

Respuesta

2

No son compatibles y creo que los diseñadores de la seguridad de Java EE se equivocaron, ya que la terminología parece estar fuera de línea con respecto a ROLES.

Por experiencia, sé que proporcionar control de acceso basado en ROLE (que se sugiere en su documentación) simplemente causa problemas en el camino cuando desea abrir una capacidad a otros grupos/roles. El acceso basado en permisos asignado a roles (o grupos) parece funcionar mejor porque es un ejercicio de reasignación en un nivel abstracto en lugar de un ejercicio de recodificación/re-anotación.

Veo cómo se sentiría confundido sobre el modelo de seguridad de Java EE. Sugeriría echar un vistazo más de cerca a Shiro y cómo ha modelado la seguridad del nivel de la aplicación. Les Hazelwood, el creador de Shiro, escribió un blog about RBAC que tiene mucho sentido para las aplicaciones que necesitan un control detallado, incluso en el nivel de instancia .

Cuestiones relacionadas