From 25a1091c36003f1d6b2a3afdd8a5fec5ee201ed3 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).

---
 opendj-sdk/opends/src/guitools/org/opends/guitools/statuspanel/ui/LoginDialog.java |   20 +++++++++++++++++++-
 1 files changed, 19 insertions(+), 1 deletions(-)

diff --git a/opendj-sdk/opends/src/guitools/org/opends/guitools/statuspanel/ui/LoginDialog.java b/opendj-sdk/opends/src/guitools/org/opends/guitools/statuspanel/ui/LoginDialog.java
index cca44c3..6c86e66 100644
--- a/opendj-sdk/opends/src/guitools/org/opends/guitools/statuspanel/ui/LoginDialog.java
+++ b/opendj-sdk/opends/src/guitools/org/opends/guitools/statuspanel/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;
@@ -759,7 +760,8 @@
     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();
@@ -797,6 +799,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