package usersys; //import java.io.BufferedWriter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import jmode.util.db.JmodeConnection; import jmode.lang.JmodeError; import jmode.util.JmodeUtil; public class JModeASPUserFiler implements Filter { public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { JModeASPUser beanObject = null; JmodeConnection l_Connection = null; try{ HttpSession session = ((HttpServletRequest)req).getSession(); String pagaName; String pageNameTrust; String l_tempString = ((HttpServletRequest)req).getRequestURI(); if(l_tempString.matches("(\\A/[^/]+)(/faces)(/contents/img)(/[^/]+)(/.*\\Z)")){ chain.doFilter(req, res); return; } if(session == null){ JmodeError.operatingErrorReport("400001","JModeASPUserFiler.java",null,""); ((HttpServletResponse)res).sendError(HttpServletResponse.SC_UNAUTHORIZED); return; } beanObject = (JModeASPUser)session.getAttribute("userSystem"); if(beanObject == null || beanObject.isLogined() == false){ JmodeError.operatingErrorReport("400002","JModeASPUserFiler.java",null,beanObject == null ? "bean null":"do not logged in"); ((HttpServletResponse)res).sendError(HttpServletResponse.SC_UNAUTHORIZED); return; } if(l_tempString.matches("(\\A/[^/]+)(/faces)(/contents/[^/]+\\.js\\Z)")){ chain.doFilter(req, res); return; } if(l_tempString.matches("(\\A/[^/]+)(/faces)(/contents/[^/]+\\.css\\Z)")){ chain.doFilter(req, res); return; } if(l_tempString.matches("(\\A/[^/]+)(/contents/[^/]+\\.js\\Z)")){ chain.doFilter(req, res); return; } if(l_tempString.matches("(\\A/[^/]+)(/contents/[^/]+\\.css\\Z)")){ chain.doFilter(req, res); return; } if(l_tempString.matches("(\\A/[^/]+)(/[^/]+\\.js\\Z)")){ chain.doFilter(req, res); return; } if(l_tempString.matches("(\\A/[^/]+)(/[^/]+\\.css\\Z)")){ chain.doFilter(req, res); return; } if(l_tempString.matches("(\\A/[^/]+)(/faces)(/[^/]+\\.js\\Z)")){ chain.doFilter(req, res); return; } if(l_tempString.matches("(\\A/[^/]+)(/faces)(/[^/]+\\.css\\Z)")){ chain.doFilter(req, res); return; } if(l_tempString.matches("(\\A/[^/]+)(/faces)(/contents)(/[^/]+)(/[^/]+\\.js\\Z)")){ chain.doFilter(req, res); return; } if(l_tempString.matches("(\\A/[^/]+)(/faces)(/contents)(/[^/]+)(/[^/]+\\.css\\Z)")){ chain.doFilter(req, res); return; } if(l_tempString.matches("(\\A/[^/]+)(/faces)(/contents)(/[^/]+)(/[^/]+)(/[^/]+\\.js\\Z)")){ chain.doFilter(req, res); return; } if(l_tempString.matches("(\\A/[^/]+)(/faces)(/contents)(/[^/]+)(/[^/]+)(/[^/]+\\.css\\Z)")){ chain.doFilter(req, res); return; } /****************************************************************************************************/ pagaName = JmodeUtil.getAccessPage((HttpServletRequest)req); pageNameTrust = ((HttpServletRequest)req).getRequestURI(); if(pagaName == null){ ((HttpServletResponse)res).sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); JmodeError.systemErrorReport("400005","JModeASPUserFiler.java",new Exception(),"",beanObject); return; } JmodeASPUserLog.writeLog(beanObject,pageNameTrust,"ACCESS"); if(pagaName.length() != 0){ if(beanObject.getNextPage() == null || ! beanObject.getNextPage().equals(pagaName)){ ((HttpServletResponse)res).sendError(HttpServletResponse.SC_BAD_REQUEST); return; } if(! beanObject.permissionTableIsExist()){ l_Connection = beanObject.createConnection(); if(l_Connection.connect() == false){ l_Connection.rollback(); l_Connection.close(); ((HttpServletResponse)res).sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); JmodeError.systemErrorReport("400003","JModeASPUserFiler.java",new Exception(),"",beanObject); return; } } beanObject.isAccessable(pagaName,l_Connection); if(l_Connection != null){ l_Connection.rollback(); l_Connection.close(); l_Connection = null; } } /****************************************************************************************************/ chain.doFilter(req, res); }catch(Exception e){ if(l_Connection != null){ l_Connection.rollback(); l_Connection.close(); } JmodeError.debugWrite("dddd" + e); JmodeError.systemErrorReport("500000","JModeASPUserFiler.java",e,"",beanObject); ((HttpServletResponse)res).sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); return; } } public void init(FilterConfig config) throws ServletException { } public void destroy() { } /* (Ӗ Javadoc) * @see java.lang.Object#finalize() */ protected void finalize() throws Throwable { if(JModeASPUser.logsys != null){ JModeASPUser.logsys.flush(); } super.finalize(); } }