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
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.