This page describes briefly how to install and use the XACL Processor.
The installation and configuration process is described as follows:
Add xercesImpl.jar and xmlParserAPIs.jar (from Xerces2), and xalan.jar and xml-apis.jar (from Xalan2) to your classpath.
Consult the top page of this package for details.
Change the active directory to the data/xacldata directory that is just below the directory where you installed this package. For example, if you installed it in E:/xss4j, you would use the following command:
E:/xss4j>cd data/xacldataNext, execute the following command (on one line):
E:/xss4j/data/xacldata >java com.ibm.xml.policy.xacl.Processor ex1_request1.xml ex1_target.xml ex1_policy.xml ex1_status.xmlThis submits an access request and the XACL processor generates the file decision_list.xml. If this command works, the package was installed correctly.
The XACL processor takes as input an access request, a target XML document, an associated policy and status, and outputs a decision list and an initiator's view. Refer to the XACL specification for the details.
You can invoke the XACL processor from the command line prompt. The usage is as follows:
java -Dcom.ibm.xml.policy.xacl.rh=<role_hierarchy_definition> -Dcom.ibm.xml.policy.xacl.gh=<group_hierarchy_definition> com.ibm.xml.policy.xacl.Processor <request> <target> <policy> <status>
For more details, please refer to the instructions for Simple Example 1.
You can invoke the XACL processor using a graphical user interface called the XACL Visual Tool. Before running it, make sure that the directory where you execute the XACL Visual Tool must contain the following files:
These schemas are used to validate related XML files.
This group definition shows which user belongs to which group.
This table is used to associate a target XML file you want to access with a policy and a status.
The above files are already installed in the data/xacldata directory just below the directory where you installed this package. These examples and samples require you change the active directory to the data/xacldata directory.
The usage is as follows:
java com.ibm.xml.policy.tool.VisualTool
You should see the following screen:

XACL VisualTool consists of two panes: the access request pane and target XML document pane. You specify an access request in the access request pane. You can also import an access request file using the File/Open Access Request menu bar. You specify the target XML document using File/Open Target XML Document menu bar. The target XML document is displayed in the target XML document pane. You can see the associated policy document using the Tool/Policy Viewer menu bar. You can also see the associated status document using the Tool/Status Viewer menu bar.
You can specify any access requests in the access request pane. The target object href is set in two ways: the first is to write the XPath directly in the object-href entry box and click the "check" button, and the second is to click on some node in the Target XML Document pane and click the "Set" button. The access decision is displayed in the Target XML Document pane.
java -Dcom.ibm.xml.policy.tool.groupDefinitionPath=e:/xss4j/data/xacldata/group.xml -Dcom.ibm.xml.policy.tool.bindTablePath=bind.xml com.ibm.xml.policy.tool.VisualTool
When they are omitted, the default files group.xml and bind.xml in the current directory will be used.For more details, please refer to the instructions for Simple Example 2.
This version of the XACL processor was implemented based on the XACL specification and you can author various policies according to the specification. However, some provisional actions described in the specification are not supported yet. The following table shows which functions, predicates, and provisional_actions are not yet supported in this release. Our implementation allows new functions, predicates, and provisional actions to be plugged into the processor. The details are documented in the API document.
| - | Supported | Unsupported |
|---|---|---|
| Functions | getUid, getRole, getValue, getAttribute and getDate | - |
| Predicates | compareStr, compareInt, and compareDate | logged |
| Provisional Actions | log, write, create and delete | verify, encrypt and xslt |