From c93aca84c5bda483ebf03a72f814336e27f0198f Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 28 Nov 2012 17:54:53 -0500
Subject: [PATCH] Show a confirmation prompt on first startup of GCA if Unlimited Strength is unavailable

---
 src/com/gitblit/authority/GitblitAuthority.java |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/src/com/gitblit/authority/GitblitAuthority.java b/src/com/gitblit/authority/GitblitAuthority.java
index 59f1320..5ee6af5 100644
--- a/src/com/gitblit/authority/GitblitAuthority.java
+++ b/src/com/gitblit/authority/GitblitAuthority.java
@@ -17,6 +17,7 @@
 
 import java.awt.BorderLayout;
 import java.awt.Container;
+import java.awt.Desktop;
 import java.awt.Dimension;
 import java.awt.EventQueue;
 import java.awt.FlowLayout;
@@ -35,6 +36,7 @@
 import java.io.FileWriter;
 import java.io.FilenameFilter;
 import java.io.IOException;
+import java.net.URI;
 import java.security.PrivateKey;
 import java.security.cert.CertificateFactory;
 import java.security.cert.X509Certificate;
@@ -296,6 +298,24 @@
 			
 			File caKeystore = new File(folder, X509Utils.CA_KEY_STORE);
 			if (!caKeystore.exists()) {
+				
+				if (!X509Utils.unlimitedStrength) {
+					// prompt to confirm user understands JCE Standard Strength encryption
+					int res = JOptionPane.showConfirmDialog(GitblitAuthority.this, Translation.get("gb.jceWarning"),
+							Translation.get("gb.warning"), JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
+					if (res != JOptionPane.YES_OPTION) {
+						if (Desktop.isDesktopSupported()) {
+							if (Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) {
+								try {
+									Desktop.getDesktop().browse(URI.create("http://www.oracle.com/technetwork/java/javase/downloads/index.html"));
+								} catch (IOException e) {
+								}
+							}
+						}
+						System.exit(1);
+					}
+				}
+				
 				// show certificate defaults dialog 
 				certificateDefaultsButton.doClick();
 				

--
Gitblit v1.9.1