From 4525af355d0db0cf9edc1da642aacd14ed52f2ba Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Mon, 19 Nov 2007 17:14:24 +0000
Subject: [PATCH] Fix for issue 2214 (Provide a manner to accept permanently certificates).

---
 opends/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java |   24 ++++++++++++++++++++++--
 1 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/opends/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java b/opends/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java
index 3652723..d1f1243 100644
--- a/opends/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java
+++ b/opends/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java
@@ -44,9 +44,11 @@
 import org.opends.guitools.uninstaller.ui.ConfirmUninstallPanel;
 import org.opends.guitools.uninstaller.ui.LoginDialog;
 import org.opends.quicksetup.ui.*;
+
 import static org.opends.quicksetup.util.Utils.*;
 import org.opends.quicksetup.util.BackgroundTask;
 import org.opends.quicksetup.util.ServerController;
+import org.opends.quicksetup.util.UIKeyStore;
 import org.opends.server.admin.AttributeTypePropertyDefinition;
 import org.opends.server.admin.ClassLoaderProvider;
 import org.opends.server.admin.ClassPropertyDefinition;
@@ -150,7 +152,9 @@
    * {@inheritDoc}
    */
   public UserData createUserData() {
-    return new UninstallUserData();
+    UninstallUserData data = new UninstallUserData();
+    data.setTrustManager(super.getTrustManager());
+    return data;
   }
 
   /**
@@ -1554,7 +1558,7 @@
       new CertificateDialog(qs.getDialog().getFrame(), ce);
     dlg.pack();
     dlg.setVisible(true);
-    if (dlg.isAccepted())
+    if (dlg.getUserAnswer() != CertificateDialog.ReturnType.NOT_ACCEPTED)
     {
       X509Certificate[] chain = ce.getChain();
       String authType = ce.getAuthType();
@@ -1617,6 +1621,22 @@
         }
       }
     }
+    if (dlg.getUserAnswer() ==
+      CertificateDialog.ReturnType.ACCEPTED_PERMANENTLY)
+    {
+      X509Certificate[] chain = ce.getChain();
+      if (chain != null)
+      {
+        try
+        {
+          UIKeyStore.acceptCertificate(chain);
+        }
+        catch (Throwable t)
+        {
+          LOG.log(Level.WARNING, "Error accepting certificate: "+t, t);
+        }
+      }
+    }
   }
 
   /**

--
Gitblit v1.10.0