diff options
Diffstat (limited to 'dozentenmodul/src/main/java/gui/intro/Login_GUI.java')
| -rw-r--r-- | dozentenmodul/src/main/java/gui/intro/Login_GUI.java | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/dozentenmodul/src/main/java/gui/intro/Login_GUI.java b/dozentenmodul/src/main/java/gui/intro/Login_GUI.java index 82c2be24..0b22792d 100644 --- a/dozentenmodul/src/main/java/gui/intro/Login_GUI.java +++ b/dozentenmodul/src/main/java/gui/intro/Login_GUI.java @@ -393,9 +393,9 @@ public class Login_GUI extends JFrame { if (loginType == LOGIN_TYPE_BWIDM) { // try the shibbo login in its own SwingWorker to avoid GUI lockups - SwingWorker<Boolean, String> worker = new SwingWorker<Boolean, String>(){ + SwingWorker<ShibbolethECP.ReturnCode, String> worker = new SwingWorker<ShibbolethECP.ReturnCode, String>(){ @Override - protected Boolean doInBackground() throws Exception { + protected ShibbolethECP.ReturnCode doInBackground() throws Exception { publish("Info: Initialisiere Shibboleth-Client ..."); OrganizationData selectedOrg = (OrganizationData) idpChoice.getSelectedItem(); publish("Info: Überprüfe Zugangdaten über bwIDM ..."); @@ -403,14 +403,32 @@ public class Login_GUI extends JFrame { } protected void done() { try { - if (get()) { - setStatus(Color.green, "Info: bwIDM-Login erfolgreich.", null); - JOptionPane.showMessageDialog(c, "Der Shibboleth-Login war erfolgreich! Der Rest ist noch in Entwicklung :)", - "bwIDM-Login erfolgreich", JOptionPane.PLAIN_MESSAGE); - // all done, show main menu - showMainMenu(); - } else { - setStatus(Color.red, "Fehler: bwIDM-Login fehlgeschlagen!", null); + ShibbolethECP.ReturnCode ecpReturn = get(); + switch(ecpReturn) { + case NO_ERROR: + setStatus(Color.green, "Info: bwIDM-Anmeldung erfolgreich.", null); + JOptionPane.showMessageDialog(c, "Der Shibboleth-Login war erfolgreich und das Holen der Resource hat geklappt! Der Rest ist noch in Entwicklung :)", + "Anmeldung erfolgreich", JOptionPane.PLAIN_MESSAGE); + // all done, show main menu + showMainMenu(); + break; + case ERROR_IDP: + setStatus(Color.red, "Fehler: bwIDM-Anmeldung fehlgeschlagen!", null); + JOptionPane.showMessageDialog(c, "Anmeldung fehlgeschlagen. Überprüfen Sie den Benutzername und Passwort.", + "Fehler", JOptionPane.ERROR_MESSAGE); + break; + case ERROR_SP: + setStatus(Color.red, "Fehler: bwIDM-Anmeldung fehlgeschlagen!", null); + JOptionPane.showMessageDialog(c, "Anmeldung erfolgreich aber die Antwort des Service Providers ist ungültig.", + "Fehler", JOptionPane.ERROR_MESSAGE); + break; + case ERROR_OTHER: + setStatus(Color.red, "Fehler: bwIDM-Anmeldung fehlgeschlagen!", null); + JOptionPane.showMessageDialog(c, "Fataler Fehler. Schicken Sie die Log-Datei einem Administrator zu!", + "Fehler", JOptionPane.ERROR_MESSAGE); + break; + default: + setStatus(Color.red, "Fehler: bwIDM-Login fehlgeschlagen!", null); } } catch (InterruptedException e) { LOGGER.error("SwingWorker for ShibbolethECP got interrupted, see trace: ", e); |
