بتاريخ: 14 مايو 201312 سنة comment_236121 السلام عليكم انا بحاول اعمل java servlet filter علشان امنع Illegal access علي الابليكاشن . انا بحثت علي الانترنت كتير جدا و كتبت الكود ده لكن المشكله اني لما بكتب ال url بايدي اول مره بيعمل فعلا redirect ل login page لكن لما بكتبه تاني مره بيفتح الصفحه عادي. انا اعتقد ان انا مفروض اعدل الكود بحيث ان انا اعمل setAtrribute في زرار ال login نفسه مش في السيرفليت بس الفكره ان انا مش عارف اعمله من ال backbean و لما عملت servlet ـانيه بتعمل عمليه ال setAttribute مش عارف انادي عليها من ال backbean ازاي ... اتمني تكون المشكله واضحه package Servlets; 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; public class ServletFilter implements Filter { private FilterConfig _filterConfig = null; public void init(FilterConfig filterConfig) throws ServletException { _filterConfig = filterConfig; } public void destroy() { _filterConfig = null; } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("Servlet Start"); HttpServletRequest servletRequest = (HttpServletRequest)request; HttpServletResponse servletResponse = (HttpServletResponse)response; servletResponse.setContentType("text/html"); HttpSession session = servletRequest.getSession(); String vSessionVariable = (String)session.getAttribute("SessionVariable"); System.out.println("Session Variable = " + vSessionVariable); if (servletRequest.getRequestURI().toString().endsWith("/Login.jsf") || servletRequest.getRequestURI().toString().endsWith("/Login") || vSessionVariable != null) { System.out.println("Condition Passed"); session.setAttribute("SessionVariable", "SessionVariable"); System.out.println("Session Variable = " + vSessionVariable); chain.doFilter(servletRequest, servletResponse); return; } else { servletResponse.sendRedirect("faces/Login.jsf"); return; } } } تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.