Show Table of Contents
Chapter 4. Authorization Modules
4.1. Custom Authorization Modules
In situations where the JBoss Data Virtualization built-in role mechanism is not sufficient, a custom
org.teiid.PolicyDecider can be installed via a JBoss module. This is a two-stage process: first you must create a jar that contains your custom class, then you must expose the jar as a JBoss module so it can be seen by all of your classes.
- Implement the org.teiid.PolicyDecider interface and build a custom java class. If you are using maven as your build process, you can use the following dependencies:
<dependencies> <dependency> <groupId>org.jboss.teiid</groupId> <artifactId>teiid-api</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.jboss.teiid</groupId> <artifactId>teiid-common-core</artifactId> <scope>provided</scope> </dependency> </dependencies> - The PolicyDecider interface is loaded by JBoss Data Virtualization using Java's standard service loader mechanism. For this to work, add the
META-INF/services/org.teiid.PolicyDeciderfile with the full name of your PolicyDecider implementation class as its contents. Here is an example:org.jboss.teiid.auth.MyCustomPolicyDecider
- Package all of these files into a JAR archive.
- Create a directory called
[JDV_HOME]/modules/com/mycompany/main/. - Copy your jar file into the newly-created directory.
- Create a module.xml file and also put it in the
[JDV_HOME]/modules/com/mycompany/main/directory.Here is an example that shows dependencies specific to JBoss Data Virtualization:<?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.0" name="com.mycompany"> <resources> <resource-root path="my_custom_policy.jar" /> <!--add any other dependent jars here, if they are not defined as modules --> </resources> <dependencies> <module name="org.jboss.teiid.common-core"/> <module name="org.jboss.teiid.api"/> <module name="javax.api"/> </dependencies> </module>Note
If your PolicyDecider has any third-party dependencies, add them as dependencies to themodule.xmlfile. Ensure you list all the files required. If dependencies are missing you will be informed when you start the software. - After the module has been added, edit the server configuration file (
standalone.xmlor its equivalent) to use your module name. The module must be added to the "teiid" subsystem:<policy-decider-module>MODULE-NAME</policy-decider-module>
- Restart the system.

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.