An open API service indexing awesome lists of open source software.

https://github.com/authzforce/java-xacml-sdk

Java Client SDK for the AuthzForce Server
https://github.com/authzforce/java-xacml-sdk

Last synced: about 1 year ago
JSON representation

Java Client SDK for the AuthzForce Server

Awesome Lists containing this project

README

          

XACML SDK
=========
[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/350fb29478014aec81bd6e28067e1355)](https://www.codacy.com/app/romain-ferrari/xacmlsdk?utm_source=tuleap.ow2.org&utm_medium=referral&utm_content=plugins/git/authzforce/xacmlsdk&utm_campaign=Badge_Grade)

Includes both the [Policy Decision Point (PDP)](https://authzforce-ce-fiware.readthedocs.io/en/latest/UserAndProgrammersGuide.html#policy-decision-api) and the [Policy Administration Point (PAP)](https://authzforce-ce-fiware.readthedocs.io/en/latest/UserAndProgrammersGuide.html#policy-administration-api) client SDKs

Quick Start
-----------
In the mean time, to use the library, you have to build it from source.
To do this follow the instructions below.

### Prerequisites
* [Git](https://git-scm.org)
* [Maven](https://maven.apache.org/)

### Setup
Clone this repository, install dependencies with mvn.

```bash
git clone https://github.com/authzforce/xacml-sdk.git && cd xacmlsdk
mvn compile -DskipTests=true -Dmaven.javadoc.skip=true -B -V
```

Install the package within your own maven repository.
```bash
mvn install
````

You can start using it inside your java project by adding the dependency to your pom file
```xml

com.thalesgroup.authzforce
xacml-sdk-pdp-rest-impl
5.0.0-SNAPSHOT

````
for PDP actions

or

```xml

com.thalesgroup.authzforce
xacml-sdk-pap-rest-impl
5.0.0-SNAPSHOT

````
for PAP actions

PDP vs PAP
----------

The PDP provides an API for getting authorization decisions computed by a XACML-compliant access control engine. It supports the following actions

* `getAuthz` to get the computed decision

see the [PDP samples](authzforce-xacmlsdk-samples/src/main/java/org/ow2/authzforce/sdk/pdp) for usage examples

The PAP provides API for managing XACML policies to be handled by the Authorization Service PDP. It supports the following actions

* `getDomains` to list all domains in the access control engine
* `getDomain` to get details on a given domain
* `addDomain` to add a new domain
* `deleteDomain` to remove a domain
* `getPolicy` to get details on a policy set
* `addPolicy` to add a policy set to a domain
* `deletePolicy` to delete a policy set from a domain
* `createSimplePolicy` to create (without saving to a domain, i.e. in memory only) a basic policy set based on the root policy. Intended to be used in conjunction with `addPolicy`

see the [PAP samples](authzforce-xacmlsdk-samples/src/main/java/org/ow2/authzforce/sdk/pap) for usage examples

Development
-----------
For more information on contributing to AuthZForce, see `CONTRIBUTING.md`.

FAQ
-----------
TODO

License
-------
```
AuthZForce CE-XACML SDK - Software Development Kit for AuthZForce authorization server
Copyright (c) 2016 Thales Services

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see http://www.gnu.org/licenses/.
```

References
-----------
* OASIS XACML 3.0: http://docs.oasis-open.org/xacml/3.0/xacml-3.0-core-spec-os-en.html