Implementar políticas de control de acceso en vistas

El control de acceso a nivel de recurso para vistas lo efectúa el gestor de beans de datos. El gestor de beans de datos se invoca en los casos siguientes: Cuando la plantilla JSP incluye la etiqueta <useBean> y el Bean de datos no está en la lista de atributos. Cuando la plantilla JSP incluye el siguiente método de activación: DataBeanManager.activate(xyzDatabean, request);

Por qué y cuándo se efectúa esta tarea

Los bean de datos que se vayan a proteger (tanto directa como indirectamente) deben implementar la interfaz Delegator. Los bean de datos que se vayan a proteger de forma directa, delegarán a sí mismos y, por tanto, deben implementar la interfaz Protectable. Los beans de datos que se protejan indirectamente deben delegar a un bean de datos que implemente la interfaz Protectable.

Aunque no se recomienda, se evitan las comprobaciones de control de acceso en los casos siguientes:

  1. Si la plantilla JSP efectúa llamadas directas a los beans de acceso, en lugar de utilizar los beans de datos.
  2. Si la plantilla JSP llama directamente al método populate() de bean de datos.

Si el resultado de un mandato de controlador debe redirigirse a una vista (utilizando ForwardViewCommand), no se lleva a cabo el control de acceso a nivel de mandato en las vistas. Además, si el mandato de controlador coloca los beans de datos con datos (que se utilizan en la vista) en la lista de atributos de la propiedad de respuesta y, a continuación, lo envía a una vista, la plantilla JSP puede acceder a los datos sin pasar por el gestor de beans de datos. Esto requiere la utilización de las etiquetas <useBean> en la plantilla JSP. Esto puede ser una manera de hacer una plantilla JSP más eficaz, ya que puede saltarse las comprobaciones de control de acceso a nivel de recurso, de los recursos (beans de datos) a los que ya se ha dado acceso al usuario mediante el mandato de controlador.