/balana

Primary LanguageJavaApache License 2.0Apache-2.0

WSO2 Balana Implementation


Branch Build Status
master Build Status

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

  1. Install Java SE Development Kit 1.8
  2. Install Apache Maven 3.x.x(https://maven.apache.org/download.cgi#)
  3. Get a clone from https://github.com/wso2/balana.git or download the source
  4. Run mvn clean install from balana directory
  5. Move to balana/modules/balana-samples/<selected sample>
  6. 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.