SK-jeetn
Legacy Member
Hallo,
Ik ben bezig met een project voor school. Ik ben bezig met de inlogprocedure bezig... Het inloggen zelf lukt al... Uitloggen op zich ook, maar daar zit nog een probleem...
Bij het inloggen moet ik dus de sessie ophalen, dit doe ik via:
httpSession.setAttribute("ActiviteitenBean", this);
Bij het uitloggen doe ik:
httpSession.invalidate();
Ik gebruik ook een filter die gaat controleren of er iets in de sessie met key (ActiviteitenBean) zit... Zoja, mag em verder gaan, zo nee wordt em terug naar de login pagina verwezen...
Het probleem is nu... Wanneer ik uitlog wordt ik naar de correcte pagina verwezen, maar wanneer ik dan via de adresbalk naar een admin pagina navigeer dan lukt dit ook... En dat mag net niet lukken...
Mijn bean:
Mijn filter:
De web.xml:
Ik ben bezig met een project voor school. Ik ben bezig met de inlogprocedure bezig... Het inloggen zelf lukt al... Uitloggen op zich ook, maar daar zit nog een probleem...
Bij het inloggen moet ik dus de sessie ophalen, dit doe ik via:
httpSession.setAttribute("ActiviteitenBean", this);
Bij het uitloggen doe ik:
httpSession.invalidate();
Ik gebruik ook een filter die gaat controleren of er iets in de sessie met key (ActiviteitenBean) zit... Zoja, mag em verder gaan, zo nee wordt em terug naar de login pagina verwezen...
Het probleem is nu... Wanneer ik uitlog wordt ik naar de correcte pagina verwezen, maar wanneer ik dan via de adresbalk naar een admin pagina navigeer dan lukt dit ook... En dat mag net niet lukken...
Mijn bean:
Code:
/**
* Deze methode wordt doorlopen wanneer er op de knop login wordt gedrukt op het loginscherm.
* @return - Lege string: indien foute login
* @return - Authenticated: indien de login correct is
*/
public String loginAction() {
String ingelogd = "nee";
Persoon persoon = null;
LoginController lc = new LoginController();
persoon = lc.login(user, paswoord);
if (persoon != null) {
ingelogd = "authenticated";
}
setIngelogdGebruiker(persoon);
//FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("gebruiker", getIngelogdGebruiker());
httpSession = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
httpSession.setAttribute("ActiviteitenBean", this);
//HttpSession.setAttribute("gebruiker", this);
return ingelogd;
}
Mijn filter:
Code:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Filter;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import javax.faces.context.FacesContext;
/**
*
* @author Jeremy Vanmaelsaeke
*/
public class LoginFilter implements Filter
{
private HttpSession httpSession;
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException
{
//System.out.println("In doFIlter");
httpSession = ((HttpServletRequest)req).getSession();
if(httpSession.getAttribute("ActiviteitenBean") == null)
{
req.getRequestDispatcher("login.jsp");
}
else
{
chain.doFilter(req, res);
}
}
}
De web.xml:
Code:
<filter>
<filter-name>loginFilter</filter-name>
<filter-class>Filter.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>loginFilter</filter-name>
<url-pattern>/admin*</url-pattern>
</filter-mapping>
