Home » apache-openwebbeans-1.0.0-incubating-M3-binary » org.apache.webbeans.reservation » security » [javadoc | source]

    1   /*
    2    *  Licensed to the Apache Software Foundation (ASF) under one or more
    3    *  contributor license agreements.  See the NOTICE file distributed with
    4    *  this work for additional information regarding copyright ownership.
    5    *  The ASF licenses this file to You under the Apache License, Version 2.0
    6    *  (the "License"); you may not use this file except in compliance with
    7    *  the License.  You may obtain a copy of the License at
    8    * 
    9    *       http://www.apache.org/licenses/LICENSE-2.0
   10    * 
   11    *  Unless required by applicable law or agreed to in writing, software
   12    *  distributed under the License is distributed on an "AS IS" BASIS,
   13    *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   14    *  See the License for the specific language governing permissions and
   15    *  limitations under the License.
   16    */
   17   package org.apache.webbeans.reservation.security;
   18   
   19   import java.io.IOException;
   20   
   21   import javax.faces.context.FacesContext;
   22   import javax.faces.event.PhaseEvent;
   23   import javax.faces.event.PhaseId;
   24   import javax.faces.event.PhaseListener;
   25   
   26   import org.apache.webbeans.reservation.entity.User;
   27   import org.apache.webbeans.reservation.session.SessionTracker;
   28   
   29   public class JSFSecurityPhaseListener implements PhaseListener
   30   {
   31   
   32       private static final long serialVersionUID = -1308051590485364148L;
   33       
   34       public void afterPhase(PhaseEvent event)
   35       {        
   36           FacesContext context = event.getFacesContext();
   37           String pathInfo = context.getExternalContext().getRequestServletPath();
   38           
   39           if(pathInfo.startsWith("/admin") || pathInfo.startsWith("/user"))
   40           {
   41               SessionTracker tracker = null;
   42               User user = null;
   43               try
   44               {
   45                   tracker = (SessionTracker)context.getApplication().evaluateExpressionGet(context, "#{sessionTracker}", SessionTracker.class);
   46                   user = tracker.getUser();
   47                   
   48               }catch(Exception e)
   49               {
   50                   //Tracker is null
   51                   System.out.println("Context is not active");
   52               }
   53               
   54               if(tracker == null || user == null)
   55               {
   56                   try
   57                   {
   58                       context.getExternalContext().redirect(context.getExternalContext().getRequestContextPath() + "/login.jsf");
   59                   }
   60                   catch (IOException e)
   61                   {
   62                       throw new RuntimeException(e);
   63                   }
   64               }
   65               
   66           }
   67            
   68           
   69       }
   70   
   71       public void beforePhase(PhaseEvent event)
   72       {
   73       }
   74   
   75       public PhaseId getPhaseId()
   76       {
   77           return PhaseId.RESTORE_VIEW;
   78       }
   79   
   80   }

Home » apache-openwebbeans-1.0.0-incubating-M3-binary » org.apache.webbeans.reservation » security » [javadoc | source]