Protection des beans de données

Les beans de données contiennent des informations sur des objets métier et sont utilisés pour afficher les informations sur les objets dans une page Web. Les pages Web dynamiques sont généralement mappées vers des vues de HCL Commerce qui sont elles-mêmes protégées par des stratégies basées sur les rôles. Il est parfois nécessaire de protéger davantage le contenu de la page Web en protégeant ses beans de données, si elle en comporte.

Pourquoi et quand exécuter cette tâche

Lorsque les beans de données sont alimentés à l'aide de la méthode DataBeanManager.activate(..), les gestionnaires de bean de données leur appliquent le contrôle d'accès. Vous pouvez protéger les beans de données directement ou indirectement, à l'aide de l'interface Delegator. Toutes les ressources doivent implémenter l'interface com.ibm.commerce.security.Protectable. Si un bean de données indirectement protégé n'implémente pas l'interface Delegator ou renvoie une valeur NULL pour la méthode getDelegate() method, il n'est pas protégé et peut être affiché par toute personne.
Voici un exemple de stratégie de niveau de ressource pour un bean de données :
<Policy Name="AllUsersDisplayOrderDataBeanResourceGroup"
        OwnerID="RootOrganization"
        UserGroup="AllUsers"
        ActionGroupName="DisplayDatabeanActionGroup"
        ResourceGroupName="OrderDataBeanResourceGroup"
        RelationName="creator"
        PolicyType="groupableStandard">
</Policy>

Le nom ActionGroupName, DisplayDatabeanActionGroup, indique que cette stratégie s'applique aux beans de données. Ce groupe d'actions inclut une action Display.

où :
Nom
Nom de cette stratégie.
UserGroup
Groupe d'accès contenant les utilisateurs auxquels s'applique la stratégie. Dans ce cas, il inclut tous les utilisateurs.
ActionGroupName
La valeur DisplayDatabeanActionGroup indique qu'il s'agit d'une stratégie de niveau de ressource pour les beans de données.
ResourceGroupName
Nom du groupe de ressources contenant les beans de données à protéger.
RelationName
Relation devant être complétée entre un utilisateur et la ressource. Dans ce cas, l'utilisateur doit être le créateur de la ressource métier Order.
Le groupe OrderDataBeanResourceGroup est défini comme suit :

<ResourceGroup Name="OrderDataBeanResourceGroup"
OwnerID="RootOrganization">
        <ResourceGroupResource
Name="com.ibm.commerce.order.beans.OrderListDataBeanResourceCategory"/>
        <ResourceGroupResource
Name="com.ibm.commerce.order.beans.OrderDataBeanResourceCategory"/>
</ResourceGroup>
Il OrderDataBeanResourceGroup s'agit de deux ressources. Voici un exemple de définition d'une ressource pour un bean de données :

<ResourceCategory
Name="com.ibm.commerce.order.beans.OrderDataBeanResourceCategory"
ResourceBeanClass="com.ibm.commerce.order.beans.OrderDataBean">
        <ResourceAction Name="DisplayDataBean"/>
</ResourceCategory>
où :
Nom
Balise utilisée pour faire référence à cette ressource dans le fichier XML.
ResourceBeanClass
Nom de classe du bean de données qui est directement protégé. Cette classe doit implémenter l'interface com.ibm.commerce.security.Protectable.
ResourceAction
Elément nécessaire à l'édition de la stratégie dans la console d'administration. Dans ce cas, cet élément indique que Display est l'action correcte à exécuter sur cette ressource.