You are on page 1of 3

<lifecycle>(faces)

<phase-listener>com.loffler.copycenter.controller.LoggedInCheck</phase>

</lifecycle>

public class LoggedInCheck implements PhaseListener {

public PhaseId getPhaseId() {

return PhaseId.RESTORE_VIEW;

public void beforePhase(PhaseEvent event) {

public void afterPhase(PhaseEvent event) {

FacesContext fc = event.getFacesContext();

// Check to see if they are on the login page.

boolean loginPage =

fc.getViewRoot().getViewId().lastIndexOf("login") > -1 ? true : false;

if (!loginPage && !loggedIn()) {

NavigationHandler nh = fc.getApplication().getNavigationHandler();

nh.handleNavigation(fc, null, "logout");

private boolean loggedIn() {


return LoginController.loggedIn().booleanValue()c;

<navigation-rule>

<from-view-id>*</from-view-id>

<navigation-case>

<from-outcome>logout</from-outcome>

<to-view-id>/login.jsp</to-view-id>

</navigation-case>

</navigation-rule>

=======================================================================================

public class LoginPhaseListener implements PhaseListener {

public void afterPhase(PhaseEvent event) {

FacesContext context = event.getFacesContext();

NavigationHandler navi = context.getApplication().getNavigationHandler();

String viewid = context.getViewRoot().getViewId();

if(!loggedIn(context) && !viewid.equals(“/index.jsp”))

navi.handleNavigation(context, null, “logout”);

public void beforePhase(PhaseEvent event) {

private boolean loggedIn(FacesContext cont)

LoginBean b = (LoginBean)((HttpServletRequest) (cont.getExternalContext().getRequest())).getSession().getAttribute(“loginBean”);

if(b != null)
if(b.getLoggedIn())

return true;

return false;

public PhaseId getPhaseId() {

return PhaseId.RESTORE_VIEW;

You might also like