Prüfung ob eingeloggt

Hawkings

Erfahrenes Mitglied
Hi @ all
ich möchte abprüfen, ob sich der Benutzer eingeloggt hat, dies mache ich über folgenden Quelltext in einer jsp mit HTML-Code
HTML:
<%
	String benutzername = request.getParameter("benutzername");
	String passwort = request.getParameter("passwort");
	bean.ConnectDatabase("//localhost/test","root","");
	ResultSet rs = bean.ReadDatabase("SELECT pw FROM INSERENT WHERE benutzername='" + benutzername + "';");
	if(rs == null)
	{
		%>
			Sehr geehrter Endbenutzer es sind leider ein paar technische Probleme Aufgetreten wir bitten dies Zu entschuldigen!
		<%
		return;
	}
	if(rs.isBeforeFirst())
	{
		rs.next();
	}
	String pw = rs.getString(1);

	if(pw==null || pw.equals(""))
	{
		%>Wir werden alle sterben"<%
		return;
	}
	else
	{
		if(pw.equals(passwort))
		{
			bean.setUserLogedOn(true);
			%>Loggend on!<%			
		}
	}

Woha...is diese Art der Prüfung korrekt?! Und wie prüfe ich auf den jeweiligen HTML-Seiten, ob der Benutzer eingeloggt ist, also dass der Benutzer z.B. wie hier im Forum oben irgendwo sieht "Hallo xyz" oder falls nicht angemeldet "Hallo Gast" sieht?!

Ich benutze nebenbei noch eine *.java class, in der ich eine Variable
private boolean UserLogedOn = false;
definiert habe...diese möchte ich nutzen, wie sieht dann der Code aus?!
Ich stelle mir das irgendwie wie folgt vor:

HTML:
if(UserLogedOn==true)
{
   User ist eingelogt"
}
else
{
   Gast ist eingeloggt
}

Hat einer eine Idee?!
 
Ich glaube damit bist du falsch im HTML Bereich.

Das hat ja nix mit HTML selbst zu tun, sondern eher richtiges Scripting also ab in den Scriptsbereich :P
 
Erstens macht man keine DB Abfragen aus einer JSP heraus. Zweitens öffnest du mit deiner Requestverarbeitung SQJ-Injections Tür und Tor.

Solche (Einlog)Logik gehört in ein Servlet. Authentifizierungsüberprüfung (wenn du denn bei JSPs/Servlets bleiben willst) in einen ServletFilter.

Ganz ehrlich, ich würde das Thema Security nicht selbst coden (es gibt genug Frameworks dafür - Spring Security z.B.). Die Chance als Anfänger Fehler reinzubauen geht gegen 100% und Securityprobleme sind meist kritisch.

http://static.springframework.org/spring-security/site/suggested.html

Spring Security bietet zum einen saubere URL Interception, wen benötigt sogar Method based Security, vor allem aber auch - wie es dir scheinbar wichtig ist - eine einfache Taglib, die es erlaubt in JSPs Authentifizierung und Authorisierung abzuprüfen.

Gruß
Ollie
 
Das ist für die Schule...das Thema Sicherheit soll erstmal außer acht gelassen werden..ich habe mir das nicht ausgedacht ;-)
Servlets und Co können mir da leider nicht weiterhelfen, da wir nur Sachen verwenden sollen, die mit dem oben genannten verbunden sind, bzw. schon gelehrt wurden...

Oder geht das nicht, wie ich es mir oben vorgestellt habe?! Ich muss doch aus dem html-Dokument aus abprüfen können, ob sich jemand authentiziert und damit eingeloggt hat oder nicht, oder?!

lg
 
Von HTML aus schonmal gar nicht. HTML ist eine Beschreibungssprache. Wenn dann geht das (ich hab das allerding snicht empfohlen) per JSP Scriptlets. Allerdings Frage ich mich, wer sowas - wenn auch nur zu Übungszwecken - mit klarem Verstand fordert. Sowas hinterlässt immer den Eindruck, es wäre richtig (O-Ton: "Das habe ich so gelernt") es ist aber genau das Gegenteil - es ist schlicht falsch.

Okay, dann hier mal die Erklärung wie es funktioniert - nochmal: das ist MIES! ;)

Deine Bean ist vermutlich irgendsoein Godobject was quasi alles machen soll, DB Verbindung authetifizierung usw.Was eigentlich reicht, ist in der session unter einem schlüssel ei Flag zusetzen. Sowas wie session.setAttribute("loggedIn", true);. Ob der User eingeloggt ist, bekommst du dann durch das Abfragen dieses Flags heraus.

Gruß
Ollie, der immer noch mit dem Kopf schüttelt und sich ganz übel an seine Urzeiten des PHP Gepfusche erinnert fühlt... :D
 
Zurück