Proteger mandatos de controlador

Todos los mandatos de controlador requieren una política de control de acceso basada en roles para poder ejecutarse. Un mandato de controlador o de tarea también requiere una política a nivel de recursos si el mandato está realizando la comprobación a nivel de recursos.

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

Para obtener más información, consulte Proteger recursos. El ejemplo siguiente muestra una política basada en roles para los mandatos de controlador:


<Policy Name="SellersExecuteSellersCmdResourceGroup"
        OwnerID="RootOrganization"
        UserGroup="Sellers"
        ActionGroupName="ExecuteCommandActionGroup"
        ResourceGroupName="SellersCmdResourceGroup"
        PolicyType="groupableStandard">
</Policy>

El nombre de ActionGroupName, ExecuteCommandActionGroup, indica que se trata de una política basada en roles para mandatos de controlador. La política indica que los usuarios del grupo Sellers pueden ejecutar los mandatos del grupo de recursos SellersCmdResourceGroup.

A continuación se muestra un ejemplo de la definición de grupo SellersCmdResourceGroup:


<ResourceGroup Name="SellersCmdResourceGroup"
OwnerID="RootOrganization">
        <ResourceGroupResource
Name="com.ibm.contract.commands.ContractCancelCmdResourceCategory"/>
        <ResourceGroupResource
Name="com.ibm.contract.commands.ContractCloseCmdResourceCategory"/>
        <ResourceGroupResource
Name="com.ibm.contract.commands.ContractCreateCmdResourceCategory"/>
</ResourceGroup>

El ejemplo anterior muestra los tres recursos siguientes en el grupo de recursos, que corresponden cada uno a un mandato de controlador:

  • com.ibm.contract.commands.ContractCancelCmdResourceCategory
  • com.ibm.contract.commands.ContractCloseCmdResourceCategory
  • com.ibm.contract.commands.ContractCreateCmdResourceCategory

A continuación se muestra una definición de un recurso de ejemplo:


<ResourceCategory
Name="com.ibm.commerce.contract.commands.ContractCloseCmdResourceCategory"

       
ResourceBeanClass="com.ibm.commerce.contract.commands.ContractCloseCmd">

        <ResourceAction Name="ExecuteCommand"/>
</ResourceCategory>

El atributo Name, com.ibm.commerce.contract.commands.ContractCloseCmdResourceCategory, se utiliza para hacer referencia a este recurso en el archivo XML. El nombre de ResourceActionName, ExecuteCommand, se utiliza para especificar las acciones que pueden realizarse en el recurso. Esta información se utiliza en la Consola de administración cuando se utilizan políticas de control de acceso para rellenar el recuadro de selección Acción correspondiente a un recurso determinado. En este caso, se especifica la acción Execute. La acción Execute se define del modo siguiente:


<Action Name="ExcecuteCommand CommandName="Execute">
</Action>
Nota: El nombre de interfaz del mandato de controlador debe coincidir con la clase ResourceBeanClass en la definición del recurso. El valor del ResourceBeanClass se almacena en la columna RESCLASSNAME de la tabla ACRESCGRY. Estos mandatos pueden utilizarse como recursos porque amplían la interfaz ControllerCommand, la cual amplía la interfaz AccCommand que, a su vez, amplía la interfaz Protectable.