summaryrefslogtreecommitdiffstats
path: root/Dozentenmodul/src/gui/intro/Login_GUI.java
diff options
context:
space:
mode:
Diffstat (limited to 'Dozentenmodul/src/gui/intro/Login_GUI.java')
-rw-r--r--Dozentenmodul/src/gui/intro/Login_GUI.java261
1 files changed, 261 insertions, 0 deletions
diff --git a/Dozentenmodul/src/gui/intro/Login_GUI.java b/Dozentenmodul/src/gui/intro/Login_GUI.java
new file mode 100644
index 00000000..e2db747e
--- /dev/null
+++ b/Dozentenmodul/src/gui/intro/Login_GUI.java
@@ -0,0 +1,261 @@
+package gui.intro;
+
+
+import java.awt.Dimension;
+import java.awt.EventQueue;
+import java.awt.Image;
+import java.awt.SystemColor;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.io.File;
+import java.io.IOException;
+import java.nio.channels.SeekableByteChannel;
+
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JPasswordField;
+import javax.swing.JTextField;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+import javax.swing.border.EmptyBorder;
+
+import models.SessionData;
+import models.person;
+import org.apache.thrift.TException;
+import org.ini4j.Wini;
+import thrift.MasterThriftConnection;
+import thrift.ImageServer.Client;
+import thrift.UserInfo;
+
+import config.config_file;
+
+@SuppressWarnings("serial")
+public class Login_GUI extends JFrame {
+
+ private JPanel contentPane;
+ private JTextField username;
+ private JPasswordField pass;
+
+ /**
+ * Launch the application.
+ */
+ public static void main(String[] args) {
+ EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ try {
+ // Prüfe und Erzeuge gegebenfalls Config
+ config_file cf = new config_file();
+ boolean conf = cf.createConfig();
+ if (conf == true) {
+ // Aufruf und Anzeige des Login Fensters
+ Login_GUI frame = new Login_GUI();
+ frame.setVisible(true);
+ } else {
+ JOptionPane.showMessageDialog(null,
+ "Fehler beim erzeugen der Konfigurationsfile",
+ "Message", JOptionPane.ERROR_MESSAGE);
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ }
+
+ /**
+ * Create the frame.
+ */
+ public Login_GUI() {
+ addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent e) {
+ System.exit(0);
+ }
+ });
+
+ // Fenster darf nicht vergrößert werden
+ setResizable(false);
+ try {
+ // Setzt das Look and Feel auf System
+ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+ } catch (ClassNotFoundException | InstantiationException
+ | IllegalAccessException | UnsupportedLookAndFeelException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ // Titel des Fensters setzen
+ setTitle("Dozentenmodul *Prototyp*");
+ // Aktion die beim Schließen durchgeführt werden soll
+ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ // Größe des Fensters definieren
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ int top = (screenSize.height - 400) / 2;
+ int left = (screenSize.width - 603) / 2;
+ setBounds(left, top, 603, 400);
+ // Erzeugen eines Panels
+ contentPane = new JPanel();
+ // Hintergrund Farbe des Panels setzen
+ contentPane.setBackground(SystemColor.menu);
+ // Rahmen des Fensters setzen
+ contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
+ setContentPane(contentPane);
+ // Layout setzen
+ contentPane.setLayout(null);
+ // Label für das Logo erzeugen
+ JLabel imgLabel = new JLabel();
+ // Größe und Position des Logos festelegen
+ imgLabel.setBounds(150, 11, 350, 142);
+ // Pfadangabe des Logos
+
+ ImageIcon icon = new ImageIcon(getClass().getResource(
+ "/Logo_bwLehrpool.png"), "Logo");
+ // Skalierung des Logos
+ Image scaled = icon.getImage().getScaledInstance(270, 64, 0);
+ imgLabel.setIcon(new ImageIcon(scaled));
+ // Hinzufügen des Logos in das Fenster
+ contentPane.add(imgLabel);
+
+ // Erzeugen und Hinzufügen des Labels
+ JLabel LabelUser = new JLabel("bwIDM-Benutzername:");
+ LabelUser.setBounds(111, 164, 134, 20);
+ contentPane.add(LabelUser);
+
+ // Erzeugen und Hinzufügen des Textfeldes
+ username = new JTextField();
+ username.setToolTipText("Bitte geben Sie Ihren bwIDM-Benutzernamen ein.");
+ username.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ performLogin();
+ }
+ });
+ username.setBounds(304, 164, 196, 20);
+ contentPane.add(username);
+ username.setColumns(10);
+
+ // Erzeugen und Hinzufügen des Labels
+ JLabel LabelPass = new JLabel("bwIDM-Passwort:");
+ LabelPass.setBounds(111, 195, 134, 20);
+ contentPane.add(LabelPass);
+
+ // Erzeugen, Hinzufügen und definierung der Aktion des Buttons
+ JButton BtnLogin = new JButton("Login");
+ BtnLogin.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ performLogin();
+ }// end actionPerformed
+ });
+
+ BtnLogin.setBounds(304, 244, 196, 23);
+ contentPane.add(BtnLogin);
+
+ // Erzeugen und Hinzufügen des Passwortfeldes
+ pass = new JPasswordField();
+ pass.setToolTipText("Bitte geben Sie Ihr bwIDM-Passwort ein.");
+ pass.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ performLogin();
+ }
+ });
+ pass.setBounds(304, 195, 196, 20);
+ contentPane.add(pass);
+ }// end LoginGUI()
+
+ //Versuche den Benutzer einzuloggen
+ public void performLogin() {
+ // Aufruf der Ldap Klasse, welche die Ldap überprüfung vornimmt
+ // Ldap check=new Ldap();
+ boolean login = true;
+ // boolean login=check.LdapAuth(username.getText(), new
+ // String(pass.getPassword()));
+ MasterThriftConnection thrift = new MasterThriftConnection();
+ Client client = thrift.getMasterThriftConnection();
+ String token = null;
+ final thrift.SessionData result;
+ try {
+ String passText = new String(pass.getPassword());
+ System.out.println("Benutzer:" +username.getText() + "\nPasswort" + passText);
+ result = client.authenticate(username.getText(), passText);
+ SessionData.session.setAuthToken(result.authToken);
+ SessionData.session.setSessionID(result.sessionId);
+ SessionData.session.setServerAdress(result.serverAddress);
+ System.out.println("Server Adresse: "+result.serverAddress);
+
+ } catch (thrift.AuthenticationException e) {
+ System.out.println("Authentifizierung fehlgeschlagen: " + e.message);
+ JOptionPane.showMessageDialog(null,
+ "Benutzeranmeldung fehlgeschlagen: Bitte Benutzername und Passwort überprüfen.",
+ "Anmeldung fehlgeschlagen",
+ JOptionPane.ERROR_MESSAGE);
+
+ return;
+ } catch (TException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return;
+ }
+ System.out
+ .println("Konnte mich beim MasterServer authentifizieren. Meine Session-ID ist "
+ + result.sessionId
+ + ", mein Token für den Satelliten "
+ + result.authToken);
+ token = result.authToken;
+ if (login == true) {
+
+ try {
+ Wini ini = new Wini(new File("C:\\Users\\"
+ + System.getProperty("user.name")
+ + "\\AppData\\Roaming\\bwLehrpoolSuite\\config.ini"));
+ // Prüfe ob Bills Of Rights schon akzeptiert wurden, wenn nicht
+ // zeige diese an
+ if (ini.get("main", "BillOfRights", boolean.class) == false) {
+ // Erstellen einer Instanz der Aktionsauswahl
+ BillOfRights_GUI re = new BillOfRights_GUI();
+ re.setVisible(true);
+ // Schließen des Fensters nach erfolgreichen Login
+ setVisible(false);
+ } else {
+ // Prüfe ob die Links zu vmware angezeigt werden sollen
+ if (ini.get("main", "vmware", boolean.class) == false) {
+ VmWareLink_GUI vm = new VmWareLink_GUI();
+ vm.setVisible(true);
+ setVisible(false);
+ } else {
+ UserInfo user = client.getUserFromToken(token);
+
+ String hochschule = user.eMail.substring(user.eMail
+ .indexOf("@") + 1, user.eMail.indexOf(".",
+ user.eMail.indexOf("@")));
+ // System.out.println("hochschule="+hochschule);
+
+ person.verantwortlicher.setUsername(username.getText());
+ person.verantwortlicher.setName(user.lastName);
+ person.verantwortlicher.setVorname(user.firstName);
+ person.verantwortlicher.setEMail(user.eMail);
+ person.verantwortlicher.setHochschule(hochschule);
+
+ // Öffne das Hauprmenü
+ MainMenue_GUI main = new MainMenue_GUI();
+ main.setVisible(true);
+ setVisible(false);
+ }
+ }
+ } catch (IOException | TException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ } else {
+ JOptionPane.showMessageDialog(null, "Login denied!", "Message",
+ JOptionPane.INFORMATION_MESSAGE);
+ }
+ }// end performLogin
+
+}// end class