You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zeppelin.apache.org by zj...@apache.org on 2020/05/15 02:25:34 UTC

[zeppelin] branch master updated: Revert "[ZEPPELIN-4778]. Each getInterpreterContext call will load user credential file"

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

zjffdu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/zeppelin.git


The following commit(s) were added to refs/heads/master by this push:
     new 2187d3f  Revert "[ZEPPELIN-4778]. Each getInterpreterContext call will load user credential file"
2187d3f is described below

commit 2187d3f4bfc2cedb57ac3ccbff61f5f426069183
Author: Jeff Zhang <zj...@apache.org>
AuthorDate: Fri May 15 10:26:00 2020 +0800

    Revert "[ZEPPELIN-4778]. Each getInterpreterContext call will load user credential file"
    
    This reverts commit f92327ab741db49430d59989cc6dcf5c964eadcc.
---
 docs/usage/interpreter/overview.md                                  | 6 +++---
 .../main/java/org/apache/zeppelin/notebook/CredentialInjector.java  | 4 ++--
 .../src/main/java/org/apache/zeppelin/user/Credentials.java         | 1 +
 .../java/org/apache/zeppelin/notebook/CredentialInjectorTest.java   | 2 +-
 4 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/docs/usage/interpreter/overview.md b/docs/usage/interpreter/overview.md
index 865c3a6..4fbbf37 100644
--- a/docs/usage/interpreter/overview.md
+++ b/docs/usage/interpreter/overview.md
@@ -131,7 +131,7 @@ Snippet of code (language of interpreter) that executes after initialization of
 
 ## Credential Injection
 
-Credentials from the credential manager can be injected into Notebooks. Credential injection works by replacing the following patterns in Notebooks with matching credentials for the Credential Manager: `{CREDENTIAL_ENTITY.user}` and `{CREDENTIAL_ENTITY.password}`. However, credential injection must be enabled per Interpreter, by adding a boolean `injectCredentials` setting in the Interpreters configuration. Injected passwords are removed from Notebook output to prevent accidentally leaki [...]
+Credentials from the credential manager can be injected into Notebooks. Credential injection works by replacing the following patterns in Notebooks with matching credentials for the Credential Manager: `{user.CREDENTIAL_ENTITY}` and `{password.CREDENTIAL_ENTITY}`. However, credential injection must be enabled per Interpreter, by adding a boolean `injectCredentials` setting in the Interpreters configuration. Injected passwords are removed from Notebook output to prevent accidentally leaki [...]
 
 **Credential Injection Setting**
 <img src="{{BASE_PATH}}/assets/themes/zeppelin/img/screenshots/credential_injection_setting.png" width="500px">
@@ -142,9 +142,9 @@ Credentials from the credential manager can be injected into Notebooks. Credenti
 **Credential Injection Example**
 
 ```scala
-val password = "{SOME_CREDENTIAL_ENTITY.password}"
+val password = "{password.SOME_CREDENTIAL_ENTITY}"
 
-val username = "{SOME_CREDENTIAL_ENTITY.user}"
+val username = "{user.SOME_CREDENTIAL_ENTITY}"
 ```
 
 ## Interpreter Process Recovery (Experimental)
diff --git a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/CredentialInjector.java b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/CredentialInjector.java
index f093f44..7f7226f 100644
--- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/CredentialInjector.java
+++ b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/CredentialInjector.java
@@ -37,8 +37,8 @@ class CredentialInjector {
 
   private Set<String> passwords = new HashSet<>();
   private final UserCredentials creds;
-  private static final Pattern userpattern = Pattern.compile("\\{([^\\}]+)\\.user\\}");
-  private static final Pattern passwordpattern = Pattern.compile("\\{([^\\}]+)\\.password\\}");
+  private static final Pattern userpattern = Pattern.compile("\\{user\\.([^\\}]+)\\}");
+  private static final Pattern passwordpattern = Pattern.compile("\\{password\\.([^\\}]+)\\}");
 
 
   public CredentialInjector(UserCredentials creds) {
diff --git a/zeppelin-zengine/src/main/java/org/apache/zeppelin/user/Credentials.java b/zeppelin-zengine/src/main/java/org/apache/zeppelin/user/Credentials.java
index fd2a9d2..0cc68ff 100644
--- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/user/Credentials.java
+++ b/zeppelin-zengine/src/main/java/org/apache/zeppelin/user/Credentials.java
@@ -90,6 +90,7 @@ public class Credentials {
   }
 
   public UserCredentials getUserCredentials(String username) throws IOException {
+    loadCredentials();
     UserCredentials uc = credentialsMap.get(username);
     if (uc == null) {
       uc = new UserCredentials();
diff --git a/zeppelin-zengine/src/test/java/org/apache/zeppelin/notebook/CredentialInjectorTest.java b/zeppelin-zengine/src/test/java/org/apache/zeppelin/notebook/CredentialInjectorTest.java
index 205ea8a..9b0c93a 100644
--- a/zeppelin-zengine/src/test/java/org/apache/zeppelin/notebook/CredentialInjectorTest.java
+++ b/zeppelin-zengine/src/test/java/org/apache/zeppelin/notebook/CredentialInjectorTest.java
@@ -31,7 +31,7 @@ import org.junit.Test;
 public class CredentialInjectorTest {
 
   private static final String TEMPLATE =
-    "val jdbcUrl = \"jdbc:mysql://localhost/emp?user={mysql.user}&password={mysql.password}\"";
+    "val jdbcUrl = \"jdbc:mysql://localhost/emp?user={user.mysql}&password={password.mysql}\"";
   private static final String CORRECT_REPLACED =
     "val jdbcUrl = \"jdbc:mysql://localhost/emp?user=username&password=pwd\"";