All pastes #184041 Raw Edit

Untitled

public text v1 · immutable
#184041 ·published 2006-09-27 14:11 UTC
rendered paste body
public class MemberFilter extends DispatchAction implements Filter  {
  
  FilterConfig config;
  
  
  // Create Log4j category instance for logging
//    static private org.apache.log4j.Category log = org.apache.log4j.Category.getInstance(MemberFilter.class.getName());
  
  
  /**
   * Simple Filter init that can be used to initialize the filter the first time
   * it is loaded.
   *
   * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
   */
  public void init(FilterConfig config) throws ServletException{
    this.config = config;
  }
  
  
  /**
   * Checks to see if the user is logged in (they have a member object in the session.)
   *
   * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.Fi
   * lterChain)
   */
  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    HttpServletRequest servletRequest = (HttpServletRequest) request;
    HttpSession session = servletRequest.getSession();
    
    
    //SECTION FOR J2ME AUTHENTICATION
    String cookieSession = servletRequest.getHeader("Set-Cookie");
    String sessionID = servletRequest.getHeader("session-id");
    
    
    System.out.println("*** COOKIE SESSION ***: " + sessionID);
    System.out.println("*** session id ***: " + servletRequest.getHeader("session-id"));
    
    
    /**************************  BEGIN TESTING  ***************************************/
    String ss = servletRequest.getQueryString();
    String sr = servletRequest.getRequestURI();
    String gm = servletRequest.getMethod();
    System.out.println("query string: " + ss + "    " + servletRequest.getMethod() + "   " + sr);
    
    
    int counter = 0;

      
      
      //GET THE INCOMING DATA FROM THE SENSORS                    //FIX, MAKE BETTER
      try {
      if(ss.equals("dispatch=perfAbsorb")) {
        System.out.println("VALUES UNDER QUARANTINE ::  COUNTER: " + counter);
        counter++;
        chain.doFilter(request, response);
      }
    } catch(NullPointerException npe) {}
    
    

    
    /*************************************************** END TESTING ******************************************/
    
    
    System.out.println("COUNTER: " + counter);
    
    if(sessionID != null) {                                                     //used for updating data on the server j2me
      if(!sessionID.equals("")) {
        chain.doFilter(request, response);
      }
    }
    
    else if(cookieSession != null) {                                            //used for getting data from the server j2me
      if(!cookieSession.equals("")) {
        chain.doFilter(request, response);
      }
    }
    
    else {              // WEB APP AUTHENTICATION
      System.out.println("COUNTER: " + counter);
      counter ++;
      LoginVO lVO = (LoginVO) session.getAttribute("User-Information");
      System.out.println("inside the else part one");
      if(lVO == null) {
        System.out.println("lVO is null");
        if(request.getParameter("goLogin") != null) {
          System.out.println("USER IS ON THE LOG IN PAGETRYING TO GET IN");
          chain.doFilter(request, response);          //userLogin?dispatch=userLogin          //time tested and true
          
        } else {
          System.out.println("FORWARDING TO THE LOG IN PAGE AS THERE'S NO SESSION VARIABLE");
          setLoginPic(lVO, request);
          RequestDispatcher rd = servletRequest.getRequestDispatcher("/");
          rd.forward(request, response);
        }
      } else {                                                                  //user is already logged in, business as usual
        System.out.println("user already logged in, business as usual v:" + lVO.getViewUsers() + "   e" + lVO.getEditUsers());
        request.setAttribute("lVO", lVO);                                       //put the userinfo in the session for application permissions
        chain.doFilter(request, response);
        
      }
      
    }
  }
  
  
  
  private void setLoginPic(LoginVO lVO, ServletRequest request ) {
    /*
    if (AAUtils.isAjaxRequest(request)){
      System.out.println("AJAX REQUEST MEMBER FILTERzzzzzz");
      AAUtils.addZonesToRefresh(request,"userPicZone");
      LoginService service = LoginService.getInstance();
      lVO = new LoginVO();
      String userName = request.getParameter("username");
      lVO.setUsername(userName);
      try {
        lVO = (LoginVO) service.getUserPic(lVO);
      } catch (DaoException ex) {
        ex.printStackTrace();
      }
      if(lVO != null) {
        request.setAttribute("userName",lVO.getUserPic());
      }
    }
     */
  }
  
  
  
  /**
   * Not implemented.
   * @see javax.servlet.Filter#destroy()
   */
  public void destroy(){}
  
  
  private Object lookupUser(String id) {
    // Most likely we would use JDBC[tm] to connect to a database,
    // perform a query, package the results up as an object,
    // and return that object. Most likely it would be a
    // specific type, perhaps User, UserInformation,
    // or UserPreferences.
    return null;
  }
  
  
  
}