Protecting controller commands
All controller commands require a role-based access control policy in order to be executed. A controller or task command also requires a resource-level policy if the command is doing resource-level checking.
About this task
For more information see Protecting resources. The following example displays a role-based policy for controller commands:
<Policy Name="SellersExecuteSellersCmdResourceGroup"
OwnerID="RootOrganization"
UserGroup="Sellers"
ActionGroupName="ExecuteCommandActionGroup"
ResourceGroupName="SellersCmdResourceGroup"
PolicyType="groupableStandard">
</Policy>
The ActionGroupName, ExecuteCommandActionGroup
,
indicates that this is a role-based policy for controller commands. The policy
states that users in the Sellers
access group can execute
the commands in the SellersCmdResourceGroup
, resource group.
The
following is an example of the SellersCmdResourceGroup
resource
group definition:
<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>
The preceding example shows the following three resources in the resource group, that each correspond to a controller command:
-
com.ibm.contract.commands.ContractCancelCmdResourceCategory
-
com.ibm.contract.commands.ContractCloseCmdResourceCategory
-
com.ibm.contract.commands.ContractCreateCmdResourceCategory
The following is a sample definition of a resource:
<ResourceCategory
Name="com.ibm.commerce.contract.commands.ContractCloseCmdResourceCategory"
ResourceBeanClass="com.ibm.commerce.contract.commands.ContractCloseCmd">
<ResourceAction Name="ExecuteCommand"/>
</ResourceCategory>
The Name
attribute, com.ibm.commerce.contract.commands.ContractCloseCmdResourceCategory
,
is used as a tag to refer to the resource in the XML file. The ResourceAction
Name, ExecuteCommand
, is used to specify the actions that
can operate on the resource. This information is used in the Administration
console when using access control policies to populate the Action selection
box that corresponds to a particular resource. In this case, the action Execute
is
specified. The Execute
action is defined in the following:
<Action Name="ExcecuteCommand CommandName="Execute">
</Action>
ResourceBeanClass
in the resource
definition. The value of the ResourceBeanClass
is stored
in the RESCLASSNAME
column of the ACRESCGRY
table.
These commands can be used as resources because they extend the ControllerCommand
interface,
which extends the AccCommand
interface, which in turn extends
the Protectable interface.