Hallo zusammen,
Ich bin ein ziemlicher Neuling in JSF / Primefaces.
Nun muss ich für eine Schularbeit ein Webapplikation erstellen.
Dabei gibt es eine Login Seite. Nach dem Einloggen, kann der User auf zwei weitere Seiten.
Mein Ziel ist es, dass nur eingeloggte User auf die weiteren zwei Seiten kommen.
Auch wenn man den Link kopiert sollte man auf die Login Seite kommen, falls er nicht eingeloggt ist.
Ich habe via Google gesucht und einige Beispiele gefunden.
Wenn der User sicht erfolgreich anmeldet, setze ich den Namen in die Session und rufe die neue Seite auf.
LoginController
Nun prüfe ich beim Aufruf von page2Controlle, ob der username gesetzt ist.
Damit will ich den Aufruf über Link kopieren verhindern.
Es prüft eigentlich diesen Fall, jedoch geht es nicht auf die Login Seite zurück.
Es zeigt die Seite an, wie wenn der User sich angemeldet hat.
Ich bin ein ziemlicher Neuling in JSF / Primefaces.
Nun muss ich für eine Schularbeit ein Webapplikation erstellen.
Dabei gibt es eine Login Seite. Nach dem Einloggen, kann der User auf zwei weitere Seiten.
Mein Ziel ist es, dass nur eingeloggte User auf die weiteren zwei Seiten kommen.
Auch wenn man den Link kopiert sollte man auf die Login Seite kommen, falls er nicht eingeloggt ist.
Ich habe via Google gesucht und einige Beispiele gefunden.
Wenn der User sicht erfolgreich anmeldet, setze ich den Namen in die Session und rufe die neue Seite auf.
LoginController
Java:
HttpSession session = SessionBean.getSession();
session.setAttribute("username", username);
return "/faces/page2";
Nun prüfe ich beim Aufruf von page2Controlle, ob der username gesetzt ist.
Damit will ich den Aufruf über Link kopieren verhindern.
Java:
HttpSession session = SessionBean.getSession();
if(session.getAttribute("username") == null){
System.err.println("Session Empty!");
return "/faces/login";
}else{
System.err.println("Session OKEY: ");
return "/faces/page3";
}
public static HttpSession getSession() {
return (HttpSession) FacesContext.getCurrentInstance()
.getExternalContext().getSession(false);
}
Es prüft eigentlich diesen Fall, jedoch geht es nicht auf die Login Seite zurück.
Es zeigt die Seite an, wie wenn der User sich angemeldet hat.