summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/GraphicalCertHandler.java
diff options
context:
space:
mode:
authorSimon Rettberg2015-09-10 11:38:25 +0200
committerSimon Rettberg2015-09-10 11:38:25 +0200
commit4ef812cdb8cb7eb294dba5837cad750deaa52da9 (patch)
treed9c355fb3b2360d54c4d63c6784908eb38bc6e6b /dozentenmodul/src/main/java/org/openslx/dozmod/gui/GraphicalCertHandler.java
parent[server] Make xml compatible with legacy run-virt (diff)
downloadtutor-module-4ef812cdb8cb7eb294dba5837cad750deaa52da9.tar.gz
tutor-module-4ef812cdb8cb7eb294dba5837cad750deaa52da9.tar.xz
tutor-module-4ef812cdb8cb7eb294dba5837cad750deaa52da9.zip
[*] Improve SSL handling
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/GraphicalCertHandler.java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/GraphicalCertHandler.java22
1 files changed, 15 insertions, 7 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/GraphicalCertHandler.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/GraphicalCertHandler.java
index 07b44175..35297c9f 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/GraphicalCertHandler.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/GraphicalCertHandler.java
@@ -30,10 +30,17 @@ public class GraphicalCertHandler {
@Override
public void checkServerTrusted(X509Certificate[] certs, String authType) throws CertificateException {
if (certs == null || certs.length == 0) {
- Gui.asyncMessageBox(
- "Der Satellit besitzt kein Zertifikat. Verschlüsselte Verbindung nicht möglich.\n\n"
- + "Möchten Sie trotzdem fortfahren?", MessageType.WARNING, LOGGER, null);
- // TODO: Ask and do
+ Boolean ret = Gui.syncExec(new GuiCallable<Boolean>() {
+ @Override
+ public Boolean run() {
+ return Gui.showMessageBox(null,
+ "Der Satellit besitzt kein Zertifikat. Verschlüsselte Verbindung nicht möglich.\n\n"
+ + "Möchten Sie trotzdem fortfahren?", MessageType.WARNING, LOGGER,
+ null);
+ }
+ });
+ if (ret)
+ return;
throw new CertificateException("No certificate provided by server");
}
byte[] encoded = certs[0].getEncoded();
@@ -51,14 +58,15 @@ public class GraphicalCertHandler {
byte[] expectedFingerprint = FingerprintManager.getFingerprint(address);
final String question;
if (expectedFingerprint == null) {
- // Not known yet, ask
- question = "Magst du die Zahl " + actualFingerprintReadable + "?";
+ // First time we connect to this server, so remember the fingerprint
+ FingerprintManager.saveFingerprint(address, actualFingerprint);
+ return;
} else if (Arrays.equals(actualFingerprint, expectedFingerprint)) {
// Known, matches, everything's fine
return;
} else {
// Known, mismatch, panic!
- question = "!!! ALARM !!!! ALARM !!! *trage hol*\n\n" + "Der Fingerabdruck von " + address
+ question = "!!! ALARM !!!! ALARM !!!\n\n" + "Der Fingerabdruck von " + address
+ " hat sich verändert.\n" + "Erwartet: "
+ new BigInteger(expectedFingerprint).toString(16) + "\n" + "Vorgefunden: "
+ actualFingerprintReadable + "\n\n"