WSO2 Balana Implementation
Branch | Build Status |
---|---|
master |
Welcome to WSO2 Balana
Balana is WSO2's open source implementation of the XACML specification building on Sun's XACML Implementation. As the name suggests Balana(the fortress) is a powerful entitlement engine to externalize authorization from your applications. With it's modular architecture you can easily develop a fully fledged entitlement solution in no time.
Specifications Supported by Balana
Balana supports the XACML 3.0, 2.0, 1.1 and 1.0 specifications.
Installation
Add the following dependency to your pom.
<dependency>
<groupId>org.wso2.balana</groupId>
<artifactId>org.wso2.balana</artifactId>
<version>1.1.12</version>
</dependency>
Getting Started
You can easily create a default instance of Balana with a file based policy repository as follows.
private static Balana balana;
private static void initBalana() {
try{
// using file based policy repository. so set the policy location as system property
String policyLocation = (new File(".")).getCanonicalPath() + File.separator + "resources";
System.setProperty(FileBasedPolicyFinderModule.POLICY_DIR_PROPERTY, policyLocation);
} catch (IOException e) {
System.err.println("Can not locate policy repository");
}
// create default instance of Balana
balana = Balana.getInstance();
}
Running Samples
- Install Java SE Development Kit 1.8
- Install Apache Maven 3.x.x(https://maven.apache.org/download.cgi#)
- Get a clone from https://github.com/wso2/balana.git or download the source
- Run
mvn clean install
from balana directory - Move to balana/modules/balana-samples/
<selected sample>
- Execute run script
Here are the samples included.
License
License of Sun's XACML implementation can be found at here. But WSO2 Balana implementation is released under Apache2 license.