Hallo zusammen,
mein Problem liegt darin das ich von meinem Localhost nun auf dem Cloud Server arbeite auf meinem lokal host MySQL hat alle super funktioniert mit dem Login aber nun auf dem Cloud Server ist es eine pervasive Datenbank und obwohl Login daten richtig sind sieht er es als Fehler an.
[CODE lang="java" title="LoginPanel"]package Panels;
import Daten.User;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
@SuppressWarnings("serial")
public class LoginPanel extends JFrame implements ActionListener {
JLabel lbl_name;
JLabel lbl_password;
JTextField tf_userName;
JPasswordField pwf_pw;
JButton btn_login;
JButton btn_cancel;
String tempUserName;
String tempPassword;
public LoginPanel() {
this.setSize(245, 175);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(null);
this.setTitle("Login");
lbl_name = new JLabel("Name:");
lbl_name.setBounds(10, 10, 80, 20);
this.add(lbl_name);
lbl_password = new JLabel("Password:");
lbl_password.setBounds(10, 40, 80, 20);
this.add(lbl_password);
tf_userName = new JTextField();
tf_userName.setBounds(90, 10, 130, 20);
this.add(tf_userName);
pwf_pw = new JPasswordField();
pwf_pw.setEchoChar('*');
pwf_pw.setBounds(90, 40, 130, 20);
this.add(pwf_pw);
btn_login = new JButton("Login");
btn_login.setBounds(10, 70, 100, 20);
btn_login.addActionListener(this);
this.add(btn_login);
btn_cancel = new JButton("Cancel");
btn_cancel.setBounds(120, 70, 100, 20);
btn_cancel.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
System.exit(0);
}
});
this.add(btn_cancel);
System.out.println("funktioniert");
this.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == btn_login) {
this.tempUserName = tf_userName.getText();
System.out.println(tempUserName);
this.tempPassword = pwf_pw.getText();
System.out.println("Password check ...");
if (Login.checkPasswordAndName(tempUserName, tempPassword)) {
System.out.println("Password korrekt");
new MainPanel(new User(tempUserName));
this.setVisible(false);
} else {
JOptionPane.showMessageDialog(null, "Benutzername oder Password stimmen nicht");
System.out.println("Login Panel Fehler meldung");
}
}
}
}
[/CODE]
Danach das 2 Panel
[CODE lang="java" title="LoginPanel"]package Panels;
import java.util.ArrayList;
import systeme.MySQLConnection1;
public class Login {
public String loginName;
public String loginPassword;
public boolean hasFirstLogin;
public static ArrayList<Login> allLogins = new ArrayList<Login>();
public Login(String Name) {
System.out.println("-----Login----");
this.loginName = Name;
System.out.println(this.loginName);
this.loginPassword = "123456";
System.out.println(this.loginPassword);
this.hasFirstLogin = true;
allLogins.add(this);
}
public static boolean checkPasswordAndName(String Name, String pw) {
MySQLConnection1 mySQL = new MySQLConnection1();
if (mySQL.checkPassword(Name, MySQLConnection1.sha256(pw))) {
System.out.println("Login erfolgreich");
return true;
}
return false;
}
}
[/CODE]
und dann versucht er Password zu überprüfen
[CODE lang="java" title="passwordcheck"]public boolean checkPassword(String Name, String hashedPW) {
Erstelle_verbindung();
try {
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT login_password FROM Mitarbeiter WHERE Login_Name = '" + Name + "'");
while (rs.next()) {
System.out.println("systeme.MySQLConnection1.checkPassword( password wird überprüft)");
String tempHash = rs.getString(1);
System.out.println(Name);
System.out.println(tempHash);
System.out.println(hashedPW);
if (hashedPW.contentEquals(tempHash)) {
schliesse_verbindung();
return true;
}
}
} catch (Exception e) {
System.out.println("Password falsch");
System.out.println("Konnte keine Verbindung hergestellt werden");
e.printStackTrace();
}
schliesse_verbindung();
return false;
}[/CODE]
beim output wenn ich ausführe und mit System out println abrufe kommen exakt die gleichen passwörter
[CODE lang="java" title="debug"]debug:
funktioniert
Programm Starten
admin
Password check ...
systeme.MySQLConnection1.checkPassword( password wird überprüft)
admin
c591fccd50b4e109176b3be461b0c90044d375b2e54a2f20eb4d4cf9160a43a2
c591fccd50b4e109176b3be461b0c90044d375b2e54a2f20eb4d4cf9160a43a2
Login Panel Fehler meldung[/CODE]
mein Problem liegt darin das ich von meinem Localhost nun auf dem Cloud Server arbeite auf meinem lokal host MySQL hat alle super funktioniert mit dem Login aber nun auf dem Cloud Server ist es eine pervasive Datenbank und obwohl Login daten richtig sind sieht er es als Fehler an.
[CODE lang="java" title="LoginPanel"]package Panels;
import Daten.User;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
@SuppressWarnings("serial")
public class LoginPanel extends JFrame implements ActionListener {
JLabel lbl_name;
JLabel lbl_password;
JTextField tf_userName;
JPasswordField pwf_pw;
JButton btn_login;
JButton btn_cancel;
String tempUserName;
String tempPassword;
public LoginPanel() {
this.setSize(245, 175);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(null);
this.setTitle("Login");
lbl_name = new JLabel("Name:");
lbl_name.setBounds(10, 10, 80, 20);
this.add(lbl_name);
lbl_password = new JLabel("Password:");
lbl_password.setBounds(10, 40, 80, 20);
this.add(lbl_password);
tf_userName = new JTextField();
tf_userName.setBounds(90, 10, 130, 20);
this.add(tf_userName);
pwf_pw = new JPasswordField();
pwf_pw.setEchoChar('*');
pwf_pw.setBounds(90, 40, 130, 20);
this.add(pwf_pw);
btn_login = new JButton("Login");
btn_login.setBounds(10, 70, 100, 20);
btn_login.addActionListener(this);
this.add(btn_login);
btn_cancel = new JButton("Cancel");
btn_cancel.setBounds(120, 70, 100, 20);
btn_cancel.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
System.exit(0);
}
});
this.add(btn_cancel);
System.out.println("funktioniert");
this.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == btn_login) {
this.tempUserName = tf_userName.getText();
System.out.println(tempUserName);
this.tempPassword = pwf_pw.getText();
System.out.println("Password check ...");
if (Login.checkPasswordAndName(tempUserName, tempPassword)) {
System.out.println("Password korrekt");
new MainPanel(new User(tempUserName));
this.setVisible(false);
} else {
JOptionPane.showMessageDialog(null, "Benutzername oder Password stimmen nicht");
System.out.println("Login Panel Fehler meldung");
}
}
}
}
[/CODE]
Danach das 2 Panel
[CODE lang="java" title="LoginPanel"]package Panels;
import java.util.ArrayList;
import systeme.MySQLConnection1;
public class Login {
public String loginName;
public String loginPassword;
public boolean hasFirstLogin;
public static ArrayList<Login> allLogins = new ArrayList<Login>();
public Login(String Name) {
System.out.println("-----Login----");
this.loginName = Name;
System.out.println(this.loginName);
this.loginPassword = "123456";
System.out.println(this.loginPassword);
this.hasFirstLogin = true;
allLogins.add(this);
}
public static boolean checkPasswordAndName(String Name, String pw) {
MySQLConnection1 mySQL = new MySQLConnection1();
if (mySQL.checkPassword(Name, MySQLConnection1.sha256(pw))) {
System.out.println("Login erfolgreich");
return true;
}
return false;
}
}
[/CODE]
und dann versucht er Password zu überprüfen
[CODE lang="java" title="passwordcheck"]public boolean checkPassword(String Name, String hashedPW) {
Erstelle_verbindung();
try {
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT login_password FROM Mitarbeiter WHERE Login_Name = '" + Name + "'");
while (rs.next()) {
System.out.println("systeme.MySQLConnection1.checkPassword( password wird überprüft)");
String tempHash = rs.getString(1);
System.out.println(Name);
System.out.println(tempHash);
System.out.println(hashedPW);
if (hashedPW.contentEquals(tempHash)) {
schliesse_verbindung();
return true;
}
}
} catch (Exception e) {
System.out.println("Password falsch");
System.out.println("Konnte keine Verbindung hergestellt werden");
e.printStackTrace();
}
schliesse_verbindung();
return false;
}[/CODE]
beim output wenn ich ausführe und mit System out println abrufe kommen exakt die gleichen passwörter
[CODE lang="java" title="debug"]debug:
funktioniert
Programm Starten
admin
Password check ...
systeme.MySQLConnection1.checkPassword( password wird überprüft)
admin
c591fccd50b4e109176b3be461b0c90044d375b2e54a2f20eb4d4cf9160a43a2
c591fccd50b4e109176b3be461b0c90044d375b2e54a2f20eb4d4cf9160a43a2
Login Panel Fehler meldung[/CODE]