-1

重複の可能性:
ログアウト後にユーザーが前の保護されたページに戻らないようにする

セッションを含むログインおよびログアウトページを作成する必要があります。ここで、一定時間後、ログアウトボタンをクリックした後、セッションを無効にする必要があります。セッションの有効期限とログアウトアクションの後、再度ログに記録せずにブラウザの戻るボタンをクリックして前のページにアクセスすることはできません。

どうすればこれを達成できますか?

4

2 に答える 2

1

ファイルにセッションタイムアウトを設定しweb.xmlます。

<session-config>
   <session-timeout>30</session-timeout> 
</session-config>

ユーザーがログに記録されたときに、セッションユーザーの名前を入力します。

session.setAttribute(userName, "userName");

そして、ユーザーがログアウトしたときにそれを殺します:

session.removeAttribute("userName");

次のように、ユーザーを検証するためのフィルターを作成します。

public class AuthorizationFilter extends Filter {

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
                                          throws   IOException, ServletException { 

        HttpServletRequest req = (HttpServletRequest) request; 

        HttpSession session = req.getSession(); 

        String userName = (String) session.getAttribute("userName"); 

        if (userName == null) { 
           rejectRedirect();  
        } 

        chain.doFilter(request, response);  
    }

    private void rejectRedirect() {
        response.sendRedirect("/login.jsp"); // or warning page
    }
} 

そして、このフィルターをweb.xml:にマップします。

<filter> 
   <filter-name>Authorization Filter</filter-name> 
   <filter-class>yourpackage.AuthorizationFilter</filter-class> 
</filter> 
<filter-mapping> 
   <filter-name>Authorization Filter</filter-name> 
   <url-pattern>*.jsp</url-pattern> 
</filter-mapping> 
于 2012-08-29T12:52:31.603 に答える
0
    public void doFilter(ServletRequest req, ServletResponse res,
            FilterChain chain)
            throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) req;

        HttpServletResponse response = (HttpServletResponse) res;

        HttpSession session = request.getSession();

        String userName = (String) session.getAttribute("loggedVendor");

        if (userName == null)
            response.sendRedirect("index.jsp");

        chain.doFilter(request, response);
    }

    public void init(FilterConfig filterConfig)
            throws ServletException {
        // We can initialize a filter using the init-params here
        // (which we defined in the deployment descriptor - web.xml)
    }

<filter>
    <filter-name>AuthorizationFilter</filter-name>
    <filter-class>AuthorizationFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>AuthorizationFilter</filter-name>
    <url-pattern>*.jsp</url-pattern>
</filter-mapping>
于 2012-08-30T10:09:33.570 に答える