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; } }