Java library for Apache Ranger.
Verify installation of java using the below command.
$ java -version java version "1.8.0_281" Java(TM) SE Runtime Environment (build 1.8.0_281-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.281-b09, mixed mode)
Libraries
import org.apache.ranger.*; import org.apache.ranger.plugin.model.*;
Add the following dependency to pom.xml
<dependency> <groupId>org.apache.ranger</groupId> <artifactId>ranger-intg</artifactId> <version>3.0.0-SNAPSHOT</version> <scope>compile</scope> </dependency>
mvn clean package mvn install dependency:copy-dependencies java -cp "target/<module name>-3.0.0-SNAPSHOT.jar:target/dependency/*" testRanger
// testRanger import java.util.*; import org.apache.ranger.*; import org.apache.ranger.plugin.model.*; public class testRanger { public static void main(String[] args) throws RangerServiceException { // create a client to connect to Apache Ranger admin String rangerUrl = "http://localhost:6080"; String username = "admin"; String password = "rangerR0cks!"; /* for kerberos authentication: authType = "kerberos" username = principal password = path of the keytab file */ // For SSL enabled ranger admin use SSL config file (see: ranger-examples/sample-client/conf/ssl-client.xml) RangerClient rangerClient = new RangerClient(rangerUrl, "simple", username, password, null); String serviceDefName = "hive"; String serviceName = "testHive"; String policyName = "testPolicy"; /* Create a new Service */ RangerService service = new RangerService(); service.setType(serviceDefName); service.setName(serviceName); Map<String, String> config = new HashMap<>(); config.put("username", "hive"); config.put("password", "hive"); config.put("jdbc.driverClassName", "org.apache.hive.jdbc.HiveDriver"); config.put("jdbc.url", "jdbc:hive2://ranger-hadoop:10000"); config.put("hadoop.security.authorization", "true"); service.setConfigs(config); RangerService createdService = rangerClient.createService(service); System.out.println("New Service created with id: " + createdService.getId()); /* Create a new Policy */ Map<String, RangerPolicy.RangerPolicyResource> resource = new HashMap<>(); resource.put("database", new RangerPolicy.RangerPolicyResource("test_db")); resource.put("table", new RangerPolicy.RangerPolicyResource("test_table")); resource.put("column", new RangerPolicy.RangerPolicyResource("*")); RangerPolicy policy = new RangerPolicy(); policy.setService(serviceName); policy.setName(policyName); policy.setResources(resource); RangerPolicy createdPolicy = rangerClient.createPolicy(policy); System.out.println("New Policy created with id: " + createdPolicy.getId()); /* Delete a policy */ rangerClient.deletePolicy(serviceName, policyName); System.out.println("Policy with name: " + policyName + " deleted successfully"); /* Delete a Service */ rangerClient.deleteService(serviceName); System.out.println("Service with name: " + serviceName + " deleted successfully"); } }
For more examples, checkout SampleClient
implementation in ranger-examples module.