Proteger beans de datos

Los beans de datos contienen información sobre los objetos de negocio y se utilizan para visualizar información de objeto acerca de una página web. Las páginas web dinámicas correlacionadas con vistas de HCL Commerce y estas vistas están protegidas mediante políticas basadas en roles. A veces, es necesario proteger adicionalmente el contenido de la página web protegiendo los beans de datos, si existen.

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

Cuando los beans de datos se pueblan mediante el método DataBeanManager.activate(..), los gestores de beans de datos aplican en los mismos el control de acceso. Los beans de datos se pueden proteger directa o indirectamente, mediante la interfaz Delegator. Los beans de datos protegidos directamente también implementan la interfaz com.ibm.commerce.security.Protectable. Si un bean de datos protegido indirectamente no implementa la interfaz Delegator o devuelve un valor nulo para el getDelegate() method, no está protegido y cualquiera podrá visualizarlo.
El siguiente es un ejemplo de política a nivel de recursos para un bean de datos:
<Policy Name="AllUsersDisplayOrderDataBeanResourceGroup"
        OwnerID="RootOrganization"
        UserGroup="AllUsers"
        ActionGroupName="DisplayDatabeanActionGroup"
        ResourceGroupName="OrderDataBeanResourceGroup"
        RelationName="creator"
        PolicyType="groupableStandard">
</Policy>

ActionGroupName, DisplayDatabeanActionGroup, indica que esta es una política para beans de datos. Este grupo de acciones incluye una acción Display.

Donde:
Nombre:
El nombre de esta política.
UserGroup
El grupo de acceso que contiene los usuarios a los que se aplica la política. En este caso, se incluyen todos los usuarios.
ActionGroupName
El valor DisplayDatabeanActionGroup indica que es una política a nivel de recursos para beans de datos.
ResourceGroupName
El nombre del grupo de recursos que contiene los beans de datos que se han de proteger.
RelationName
La relación que se debe cumplir entre un usuario y el recurso. En este caso, el usuario debe ser el creador del recurso de negocio Order.
OrderDataBeanResourceGroup se define del modo siguiente:

<ResourceGroup Name="OrderDataBeanResourceGroup"
OwnerID="RootOrganization">
        <ResourceGroupResource
Name="com.ibm.commerce.order.beans.OrderListDataBeanResourceCategory"/>
        <ResourceGroupResource
Name="com.ibm.commerce.order.beans.OrderDataBeanResourceCategory"/>
</ResourceGroup>
OrderDataBeanResourceGroup consta de dos recursos. El siguiente presenta una definición de recursos como ejemplo para un bean de datos:

<ResourceCategory
Name="com.ibm.commerce.order.beans.OrderDataBeanResourceCategory"
ResourceBeanClass="com.ibm.commerce.order.beans.OrderDataBean">
        <ResourceAction Name="DisplayDataBean"/>
</ResourceCategory>
Donde:
Nombre:
Código que se utiliza para hacer referencia a este recurso en el archivo XML.
ResourceBeanClass
El nombre de clase del bean de datos que se está protegiendo directamente. Esta clase debe implementar la interfaz com.ibm.commerce.security.Protectable:
ResourceAction
Un elemento necesario para editar políticas en la Consola de administración. En este caso, este elemento indica que Display es la acción válida que puede realizarse en este recurso.