2017-06-09 16 views
0

失敗した後、ログイン試行とユーザロックアウトメッセージを表示しようとしています。これはTomcat 8サーバー上で実行され、15分間3回失敗した後にユーザーをロックアウトするように構成されています。私はユーザーがロックアウトされた後にログインページにメッセージを表示したいと思います。問題は、ログインが失敗してページが更新され(ログインページにリダイレクトされる)、すべてがクリアされる場合です。私はFTPサイトのログインページに取り組んでいます

私はちょうどクッキーに保存し、その時、すべてのユーザーアカウントに接続されていないので、しかし、それは100%に動作しない、エラーメッセージが表示され、残りのログイン試行を得ることができませんでした。とにかくユーザー名(誰がログインしていますか)とそのログイン試行を取得するか、ロックアウトされているかどうかを確認しますか?ユーザ名で、

ログインページ

  • ユーザーがロックアウトされるユーザーごとに残り

    1. ログインの試み:

      <%@page import="org.apache.catalina.User"%> 
      <%@page contentType="text/html" pageEncoding="UTF-8"%> 
      <!DOCTYPE html> 
      <html> 
          <head> 
           <link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/css/master.css"> 
           <script type="text/javascript" src="<%=request.getContextPath()%>/javascript/javascript.js"></script> 
          </head> 
          <body bgcolor="#ffffff"> 
           <div class="container" role="main"> 
            <form method="POST" action="j_security_check"> 
             <table border="0" align="center"> 
              <tr> 
               <td>Login</td> 
               <td><input id="user" type="text" name="j_username" autocomplete="off"></td> 
              </tr> 
              <tr> 
               <td>Password</td> 
               <td><input type="password" name="j_password" autocomplete="off"></td> 
              </tr> 
             </table> 
              <% 
               User user = (User) request.getSession().getAttribute("user"); 
               System.out.println("User: " + user); 
               if (request.getParameter("error") != null) { 
                System.out.println("Error: " + request.getParameter("error")); 
                %> 
                 <div id="errorLogin">Invalid username or password</div> 
                 <br/> 
                 <div><span id="loginAttempt"><script>loginAttempts("<%=user%>");</script></span></div> 
                <% 
               } 
              %> 
      
             <input type="submit" value="Login"> 
            </form> 
           </div> 
              <% response.setHeader("Cache-Control", "no-cache"); // HTTP 1.1 
               response.setHeader("Cache-Control", "no-store"); 
               response.setHeader("Pragma", "no-cache"); // HTTP 1.0 
               response.setHeader("Expires", "0"); // Prevents cache at proxy server 
              %> 
          </body> 
      </html> 
      

      javasciptを

      は、だから私は2つのことを表示したいです.jsファイル

      var loginattempts = null; 
      var temp; 
      
      function loginAttempts(user) { 
          //var user = document.getElementById('user').value; 
          var div = document.getElementById('loginAttempt'); 
          var msg = "Warning: Login attempts remaining: "; 
          loginattempts = getCookie("login"); 
      
          if (loginattempts === "" || loginattempts === null) { 
           createCookie("login", 3, 5); 
           temp = getCookie("login"); 
           div.textContent = msg + temp.toString(); 
          } else if (loginattempts === "0" || loginattempts === 0) { 
           div.textContent = user + " has been locked out"; 
          } else { 
           temp = getCookie("login") - 1 ; 
           div.textContent = msg + temp.toString(); 
          } 
      
          debugger; 
      
      } 
      
      function getCookie(cname) { 
          var name = cname + "="; 
          var decodedCookie = decodeURIComponent(document.cookie); 
          var ca = decodedCookie.split(';'); 
      
          for(var i = 0; i <ca.length; i++) { 
           var c = ca[i]; 
           while (c.charAt(0) === ' ') { 
            c = c.substring(1); 
           } 
           if (c.indexOf(name) === 0) { 
            return c.substring(name.length, c.length); 
           } 
          } 
          return ""; 
      } 
      
      function createCookie(cname, cvalue, exdays) { 
          var d = new Date(); 
          d.setTime(d.getTime() + (exdays*24*60*60*1000)); 
          var expires = "expires=" + d.toUTCString(); 
          document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 
      } 
      

      のserver.xmlロックアウト:

      <Realm className="org.apache.catalina.realm.LockOutRealm" failureCount="3" lockOutTime="900" cacheSize="1000" cacheRemovalWarningTime="3600"> 
      
  • 答えて

    0

    私は情報を保存するためにクッキーを使用しています、これを自分で解決してきました。