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/ui/LoginDialog.java |   19 ++++++++++++++++++-
 1 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/opends/src/guitools/org/opends/guitools/uninstaller/ui/LoginDialog.java b/opends/src/guitools/org/opends/guitools/uninstaller/ui/LoginDialog.java
index f5faa55..d3b2739 100644
--- a/opends/src/guitools/org/opends/guitools/uninstaller/ui/LoginDialog.java
+++ b/opends/src/guitools/org/opends/guitools/uninstaller/ui/LoginDialog.java
@@ -65,6 +65,7 @@
 import org.opends.quicksetup.ui.UIFactory;
 import org.opends.quicksetup.ui.Utilities;
 import org.opends.quicksetup.util.BackgroundTask;
+import org.opends.quicksetup.util.UIKeyStore;
 import org.opends.quicksetup.util.Utils;
 
 import org.opends.messages.Message;
@@ -660,7 +661,7 @@
     CertificateDialog dlg = new CertificateDialog(parent, ce);
     dlg.pack();
     dlg.setVisible(true);
-    if (dlg.isAccepted())
+    if (dlg.getUserAnswer() != CertificateDialog.ReturnType.NOT_ACCEPTED)
     {
       X509Certificate[] chain = ce.getChain();
       String authType = ce.getAuthType();
@@ -698,6 +699,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