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.