2014-04-09 2 views
0

사용자가 로그인 및 로그 아웃해야하는 Java 응용 프로그램을 개발 중입니다. 나는 다시가는 사용자를 방지하려면 : 로그 아웃 한 후 사용자가 로그인 양식으로 돌아 가지 않도록하고 로그 아웃 한 후 세션 페이지를 닫지 않습니까?

내가 별도로 이러한 문제에 대답에 StackOverflow에 대한 몇 가지 질문을 살펴 보았다을 로그 아웃 한 후

  • 세션 페이지에 로그인 한 후

    1. 로그인 페이지 및 둘 다 별도의 필터를 구현할지 여부를 모르겠습니다.

      또한 세션 검사 또는 세션 페이지 비 캐시 또는 둘 다 사용해야합니까?

      누군가이 문제의 코드 샘플을 제공 할 수 있습니까?

      다시 브라우저에서가는 것을 방지 할 수 후 기술 후

  • +1

    _i이 둘 여부에 대해 별도의 필터를 구현할지 몰라? _ ** 먼저 구현하고 어떤 문제가 게시 직면되는지 확인합니다. ** – Rembo

    답변

    0

    나는 마지막으로이 코드를 사용하고 잘 작동하는 것 같았다.

    public class SessionFilter implements Filter { 
    
    /** 
    * Default constructor. 
    */ 
    public SessionFilter() { 
    } 
    
    /** 
    * @see Filter#destroy() 
    */ 
    public void destroy() { 
    } 
    
    /** 
    * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain) 
    */ 
    public void doFilter(ServletRequest request, ServletResponse response, 
         FilterChain chain) throws IOException, ServletException { 
    
        HttpServletRequest hRequest = (HttpServletRequest) request; 
        HttpServletResponse hResponse = (HttpServletResponse) response; 
        HttpSession session = hRequest.getSession(false); // returns existing or 
                     // null 
    
        if (session == null || session.getAttribute("user_email") == null) { 
         hResponse.sendRedirect(hRequest.getContextPath() + "/login.jsp"); 
         // return; 
        } else { 
         hResponse.setHeader("Cache-Control", 
           "no-cache, no-store, must-revalidate"); // HTTP 1.1. 
         hResponse.setHeader("Pragma", "no-cache"); // HTTP 1.0. 
         hResponse.setDateHeader("Expires", 0); 
         chain.doFilter(request, response); 
        } 
    
    
    } 
    
    /** 
    * @see Filter#init(FilterConfig) 
    */ 
    public void init(FilterConfig fConfig) throws ServletException { 
        // TODO Auto-generated method stub 
    } 
    

    }

    관련 문제