59 lines
1.7 KiB
Plaintext
Executable File
59 lines
1.7 KiB
Plaintext
Executable File
package com.fp.frontend.filter.security;
|
|
|
|
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;
|
|
import javax.servlet.http.HttpSession;
|
|
|
|
import com.fp.persistence.pgeneral.safe.TsafeUserDetail;
|
|
|
|
public class AuthorizationListener implements PhaseListener {
|
|
|
|
/**
|
|
*
|
|
*/
|
|
private static final long serialVersionUID = 1L;
|
|
|
|
@Override
|
|
public void afterPhase(PhaseEvent event) {
|
|
FacesContext facesContext = event.getFacesContext();
|
|
String currentPage = facesContext.getViewRoot().getViewId();
|
|
|
|
boolean isLoginPage = (currentPage.lastIndexOf("login.xhtml") > -1);
|
|
HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(false);
|
|
|
|
NavigationHandler nh = facesContext.getApplication().getNavigationHandler();
|
|
//NavigationHandler nh = FacesContext.getCurrentInstance().getApplication().getNavigationHandler();
|
|
|
|
TsafeUserDetail currentUser = session!=null ? (TsafeUserDetail) session.getAttribute("TSAFEUSERDETAIL"):null;
|
|
|
|
if (!isLoginPage && (currentUser == null)) {
|
|
//nh.handleNavigation(facesContext, null, "login");
|
|
try {
|
|
facesContext.getExternalContext().dispatch("/login.xhtml");
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}else if(isLoginPage && (currentUser!=null)){
|
|
//nh.handleNavigation(facesContext, null, "workspace");
|
|
try {
|
|
facesContext.getExternalContext().dispatch("/pages/workspace.xhtml");
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
@Override
|
|
public void beforePhase(PhaseEvent event) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public PhaseId getPhaseId() {
|
|
return PhaseId.RESTORE_VIEW;
|
|
}
|
|
} |