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

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


The following commit(s) were added to refs/heads/master by this push:
     new e18f55e696 Ask for DB password when creating OCI Vault
     new c3bd066dab Merge pull request #6645 from 
jhorvath/db_vault_empty_password
e18f55e696 is described below

commit e18f55e696823a2b09dde71c53528dff25521694
Author: Jan Horvath <j...@horvath.cz>
AuthorDate: Tue Oct 31 16:46:06 2023 +0100

    Ask for DB password when creating OCI Vault
---
 .../oracle/actions/AddDbConnectionToVault.java     | 79 ++++++++++++++++------
 1 file changed, 59 insertions(+), 20 deletions(-)

diff --git 
a/enterprise/cloud.oracle/src/org/netbeans/modules/cloud/oracle/actions/AddDbConnectionToVault.java
 
b/enterprise/cloud.oracle/src/org/netbeans/modules/cloud/oracle/actions/AddDbConnectionToVault.java
index d98e75d962..ee2a170dd8 100644
--- 
a/enterprise/cloud.oracle/src/org/netbeans/modules/cloud/oracle/actions/AddDbConnectionToVault.java
+++ 
b/enterprise/cloud.oracle/src/org/netbeans/modules/cloud/oracle/actions/AddDbConnectionToVault.java
@@ -113,7 +113,8 @@ import org.openide.util.Pair;
     "Cancel=Cancel",
     "SecretExists=Secrets with name {0} already exists",
     "NoProfile=There is not any OCI profile in the config",
-    "NoCompartment=There are no compartments in the Tenancy"
+    "NoCompartment=There are no compartments in the Tenancy",
+    "Password=Enter password for Database user {0}"
 })
 public class AddDbConnectionToVault implements ActionListener {
 
@@ -209,7 +210,7 @@ public class AddDbConnectionToVault implements 
ActionListener {
         }
     }
 
-    static class CompartmentStep implements Step<TenancyItem, CompartmentItem> 
{
+    class CompartmentStep implements Step<TenancyItem, CompartmentItem> {
 
         private Map<String, OCIItem> compartments = null;
         private CompartmentItem selected;
@@ -261,7 +262,7 @@ public class AddDbConnectionToVault implements 
ActionListener {
         }
     }
 
-    static class VaultStep implements Step<CompartmentItem, VaultItem> {
+    class VaultStep implements Step<CompartmentItem, VaultItem> {
 
         private Map<String, VaultItem> vaults = null;
         private VaultItem selected;
@@ -307,7 +308,7 @@ public class AddDbConnectionToVault implements 
ActionListener {
         }
     }
 
-    static class KeyStep implements Step<VaultItem, Pair<VaultItem, KeyItem>> {
+    class KeyStep implements Step<VaultItem, Pair<VaultItem, KeyItem>> {
 
         private Map<String, KeyItem> keys = null;
         private KeyItem selected;
@@ -363,7 +364,7 @@ public class AddDbConnectionToVault implements 
ActionListener {
 
     }
 
-    static class DatasourceNameStep implements Step<Pair<VaultItem, KeyItem>, 
Result> {
+    class DatasourceNameStep implements Step<Pair<VaultItem, KeyItem>, Result> 
{
 
         private Result result = new Result();
 
@@ -401,7 +402,7 @@ public class AddDbConnectionToVault implements 
ActionListener {
 
     }
 
-    static class OverwriteStep implements Step<Result, Result> {
+    class OverwriteStep implements Step<Result, Result> {
 
         private Result result;
         private Set<String> dsNames;
@@ -428,7 +429,7 @@ public class AddDbConnectionToVault implements 
ActionListener {
 
         @Override
         public Step getNext() {
-            return null;
+            return new PasswordStep().prepare(result);
         }
 
         @Override
@@ -451,11 +452,51 @@ public class AddDbConnectionToVault implements 
ActionListener {
         }
 
     }
+    
+    class PasswordStep implements Step<Result, Result> {
+
+        private Result item;
+        private boolean ask;
+
+        @Override
+        public Step<Result, Result> prepare(Result item) {
+            item.password = context.getPassword();
+            ask = item.password == null || item.password.isEmpty();
+            this.item = item;
+            return this;
+        }
+
+        @Override
+        public NotifyDescriptor createInput() {
+            return new NotifyDescriptor.InputLine("DEFAULT", 
Bundle.Password(context.getUser())); //NOI18N
+        }
+
+        @Override
+        public boolean onlyOneChoice() {
+            return !ask;
+        }
 
+        @Override
+        public Step getNext() {
+            return null;
+        }
+
+        @Override
+        public void setValue(String password) {
+            item.password = password;
+        }
+
+        @Override
+        public Result getValue() {
+            return item;
+        }
+    }
+    
     static class Result {
         VaultItem vault;
         KeyItem key;
         String datasourceName;
+        String password;
         private boolean update;
     }
 
@@ -523,25 +564,23 @@ public class AddDbConnectionToVault implements 
ActionListener {
 
     @Override
     public void actionPerformed(ActionEvent e) {
-
         Multistep multistep = new Multistep(new TenancyStep());
 
         NotifyDescriptor.ComposedInput ci = new 
NotifyDescriptor.ComposedInput(Bundle.AddADB(), 3, multistep.createInput());
         if (DialogDescriptor.OK_OPTION == 
DialogDisplayer.getDefault().notify(ci)) {
             if (multistep.getResult() != null) {
-                Result v = (Result) multistep.getResult();
-                addDbConnectionToVault(v.vault, v.key, context, 
v.datasourceName);
+                addDbConnectionToVault((Result) multistep.getResult());
             }
         }
 
     }
 
-    private static void addDbConnectionToVault(VaultItem vault, KeyItem key, 
DatabaseConnection connection, String datasourceName) {
+    private void addDbConnectionToVault(Result item) {
         VaultsClient client = 
VaultsClient.builder().build(getDefault().getActiveProfile().getConfigProvider());
 
         ListSecretsRequest listSecretsRequest = ListSecretsRequest.builder()
-                .compartmentId(vault.getCompartmentId())
-                .vaultId(vault.getKey().getValue())
+                .compartmentId(item.vault.getCompartmentId())
+                .vaultId(item.vault.getKey().getValue())
                 .limit(88)
                 .build();
 
@@ -552,16 +591,16 @@ public class AddDbConnectionToVault implements 
ActionListener {
 
         Map<String, String> values = new HashMap<String, String>() {
             {
-                put("Username", connection.getUser()); //NOI18N
-                put("Password", connection.getPassword()); //NOI18N
-                put("OCID", (String) 
connection.getConnectionProperties().get("OCID")); //NOI18N
+                put("Username", context.getUser()); //NOI18N
+                put("Password", item.password); //NOI18N
+                put("OCID", (String) 
context.getConnectionProperties().get("OCID")); //NOI18N
                 put("wallet_Password", UUID.randomUUID().toString()); //NOI18N
             }
         };
 
         try {
             for (Entry<String, String> entry : values.entrySet()) {
-                String secretName = "DATASOURCES_" + datasourceName + "_" + 
entry.getKey().toUpperCase(); //NOI18N
+                String secretName = "DATASOURCES_" + item.datasourceName + "_" 
+ entry.getKey().toUpperCase(); //NOI18N
                 String base64Content = 
Base64.getEncoder().encodeToString(entry.getValue().getBytes(StandardCharsets.UTF_8));
 
                 SecretContentDetails contentDetails = 
Base64SecretContentDetails.builder()
@@ -582,9 +621,9 @@ public class AddDbConnectionToVault implements 
ActionListener {
                             .secretContent(contentDetails)
                             .secretRules(new 
ArrayList<>(Arrays.asList(SecretReuseRule.builder()
                                     
.isEnforcedOnDeletedSecretVersions(false).build())))
-                            .compartmentId(vault.getCompartmentId())
-                            .vaultId(vault.getKey().getValue())
-                            .keyId(key.getKey().getValue())
+                            .compartmentId(item.vault.getCompartmentId())
+                            .vaultId(item.vault.getKey().getValue())
+                            .keyId(item.key.getKey().getValue())
                             .build();
                     CreateSecretRequest request = CreateSecretRequest
                             .builder()


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org
For additional commands, e-mail: commits-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to