|||faces-config.xml:|||
login utente
logIn
autoshop.web.LogIn
request
username
#{username}
password
#{password}
bean per la sessione
sessionBean
autoshop.web.SessionBean
session
username
#{username}
isLoggato
#{isLoggato}
.....
||| logIn.java: |||
package autoshop.web;
import autoshop.ejb.facade.EjbUtenteFacade;
import autoshop.jpa.dominio.Utente;
import javax.faces.context.FacesContext;
import javax.naming.InitialContext;
/**
*
* @author mill
*/
public class LogIn{
private String username;
private String password;
public String getUsername(){
return this.username;
}
public void setUsername(String username){
this.username=username;
}
public String getPassword(){
return this.password;
}
public void setPassword(String password){
this.password=password;
}
public String loginAction(){
String result="";
EjbUtenteFacade euf=getEjbUtenteFacade();
Utente utente=euf.effettuaLogin(this.getUsername(),this.getPassword());
if(utente!=null){
this.sessionUtil();
result="success";
}
else
result="error";
return result;
}
private EjbUtenteFacade getEjbUtenteFacade(){
try{
InitialContext ctx = new InitialContext();
return (EjbUtenteFacade)ctx.lookup("AutoShop/EjbUtenteFacadeImpl/remote");
}catch(Exception e){
return null;
}
}
private void sessionUtil(){
FacesContext context = FacesContext.getCurrentInstance();
SessionBean sessionBean = (SessionBean)context.getApplication().evaluateExpressionGet(context,"#{sessionBean}",SessionBean.class);
sessionBean.setUsername(this.getUsername());
sessionBean.setIsLoggato(true);
}
}
||| SessionBean.java |||
package autoshop.web;
/**
*
* @author mill
*/
public class SessionBean {
private String username;
private boolean isLoggato;
public String getUsername(){
return username;
}
public void setUsername(String username){
this.username=username;
}
public boolean getIsLoggato(){
return this.isLoggato;
}
public void setIsLoggato(boolean isLoggato){
this.isLoggato=isLoggato;
}
}
||| SessionUtility.java |||
package autoshop.utility;
import autoshop.web.SessionBean;
import javax.faces.context.FacesContext;
/**
*
* @author mill
*/
public class SessionUtility {
public static SessionBean getSessionBean(){
return (SessionBean)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("sessionBean");
}
}
||| ControlloPermessiListener.java |||
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package autoshop.utility;
import javax.faces.application.NavigationHandler;
import javax.faces.context.FacesContext;
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;
public class ControlloPermessiListener implements PhaseListener {
public void afterPhase(PhaseEvent event) {
FacesContext fc = event.getFacesContext();
//controllo se sono nella pagina di login
boolean loginpage = fc.getViewRoot().getViewId().lastIndexOf("logIn") > -1 ? true : false;
//se non sono nella pagina di login e se non sono loggato
if (!loginpage && !SessionUtility.getSessionBean().getIsLoggato()) {
NavigationHandler nh = fc.getApplication().getNavigationHandler();
nh.handleNavigation(fc, null, "logout");
}
}
public void beforePhase(PhaseEvent event) {
}
public PhaseId getPhaseId() {
return PhaseId.RESTORE_VIEW;
}
}