Login nicht möglich bzw. fehlerhafte Prüfung

Ich habe eine index.jsp mit einem Loginformular (E-Mail und Passwort). Die Daten werden an eine Login.java weitergeleitet, soweit kein Problem, funktioniert ohne Probleme. In der Login.java durchläuft das Passwort eine hash-Funktion und soll dann mit dem in der DB hinterlegten Passwort verglichen werden, da beginnt das Problem. Das Passwort durchläuft problemlos die hash-Funktion, den Abgleich aber nicht mehr. Danach soll eigentlich auch der Vorname der Person weitergeleitet werden, dass funktioniert leider auch nicht. Ich hab schon verschiedene Sachen ausprobiert, waren für mich immer logisch, aber sie haben trotzdem nicht zum Erfolg geführt. Aus dem Grund bin ich jetzt hier und hoffe, dass mir hier jemand helfen kann.

if (!mail.equals("") && !passwort.equals("")) {
	Connection connection = DatabaseConnection.getConnection();

	String query = "SELECT email, passwort FROM benutzer WHERE email = ? AND passwort = ?";

	try {
		if (connection != null) {
			PreparedStatement pStatement = connection.prepareStatement(query);

			pStatement.setString(1, mail);
			pStatement.setString(2, passwort);

			ResultSet rs = pStatement.executeQuery();
					
			String[] passwortDB = { rs.getString(0) };

			if (passwortDB[0] == passwort) {
				String nameQuery = "SELECT vorname FROM benutzer WHERE email = ?;";
				PreparedStatement nameStatement = connection.prepareStatement(nameQuery);
				nameStatement.setString(1, mail);
				ResultSet nameRS = nameStatement.executeQuery();
				ArrayList<String[]> ergebnis = new ArrayList<String[]>();
				String[] name = { nameRS.getString(1) };
				ergebnis.add(name);
					
				if (mail.contains("@admin.de")) {
					request.setAttribute("adminname", ergebnis);
					request.getRequestDispatcher("profilAdmin.jsp").forward(request, response);

				} else {
							request.getRequestDispatcher("profil.jsp").forward(request, response);
				}

			} else {
				request.getRequestDispatcher("login.jsp").forward(request, response);
			}
		}
	} catch (SQLException e) {
		e.printStackTrace();
	} finally {
		try {
			if (connection != null) {
				connection.close();
			}
		} catch (SQLException ignored) {
		}
	}
} else {
	request.getRequestDispatcher("registrieren.jsp").forward(request, response);
}

Im Profil steht dann: ${ adminname } .

Du hast rs.next() vergessen.

ResultSet rs = pStatement.executeQuery();
if (rs.nex()) {
  // ... es wurde etwas gefunden
} else {
  // email oder passwort waren falsch
}

Das ist im übrigen das falsche Unterforum: das ist ein Java Problem und hat nichts mit “Trigger und Funktionen” zu tun.
Fragen dieser Art gehören nach: https://www.pg-forum.de/viewforum.php?f=50

Ok, danke :smiley:

Du könntest auch gleich den Vornamen mit abfragen, würde ein Gang zu DB sparen. Ich hoffe mal, das sind keine Klartextpasswörter in der DB…