You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ab...@apache.org on 2021/03/29 14:15:43 UTC

[ranger] branch ranger-2.2 updated: RANGER-3223: Add README for Java client

This is an automated email from the ASF dual-hosted git repository.

abhay pushed a commit to branch ranger-2.2
in repository https://gitbox.apache.org/repos/asf/ranger.git


The following commit(s) were added to refs/heads/ranger-2.2 by this push:
     new ca45900  RANGER-3223: Add README for Java client
ca45900 is described below

commit ca4590019b187d5a54938e672f3e456630c063c1
Author: Abhishek Kumar <ab...@gmail.com>
AuthorDate: Mon Mar 29 07:09:27 2021 -0700

    RANGER-3223: Add README for Java client
---
 intg/src/main/java/README.md | 136 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 136 insertions(+)

diff --git a/intg/src/main/java/README.md b/intg/src/main/java/README.md
new file mode 100644
index 0000000..21581a3
--- /dev/null
+++ b/intg/src/main/java/README.md
@@ -0,0 +1,136 @@
+<!---
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+# Apache Ranger - Java client
+
+Java library for Apache Ranger.
+
+## Installation
+
+#### Prerequisites
+- Java 8
+- Maven 3.6.3
+
+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
+```xml
+<dependency>
+    <groupId>org.apache.ranger</groupId>
+    <artifactId>ranger-intg</artifactId>
+    <version>3.0.0-SNAPSHOT</version>
+    <scope>compile</scope>
+</dependency>
+```
+## Usage
+
+```
+mvn clean package
+mvn install dependency:copy-dependencies
+java -cp "target/<module name>-3.0.0-SNAPSHOT.jar:target/dependency/*" testRanger
+```
+
+```java
+// 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](https://github.com/apache/ranger/blob/master/ranger-examples/sample-client/src/main/java/org/apache/ranger/examples/sampleclient/SampleClient.java) module.