乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      服務(wù)器是怎么要求客戶端強(qiáng)行彈出身份驗證窗口的

       duduwolf 2005-07-14

      我們訪問tomcat服務(wù)器的時候如果試圖訪問Tomcat Manager就會發(fā)現(xiàn)瀏覽器彈出一個登陸對話框,和我們平常的網(wǎng)頁對話框不同,而且查看頁面的時候查不到生成這個對話框的代碼,禁止腳本也毫無作用。手頭的資料對這個東西沒有任何介紹,它到底是怎么彈出來的呢?


      用jmeter創(chuàng)建一個http request的sampler,再建一個view result tree的lisenter來看看服務(wù)器返回了些什么污七八糟的:

      HTTP response headers:
      HTTP/1.1 401 Unauthorized
      Pragma: No-cache
      Cache-Control: no-cache
      Expires: Thu, 01 Jan 1970 08:00:00 CST
      WWW-Authenticate: Basic realm="Tomcat Manager Application"
      Content-Type: text/html;charset=utf-8
      Content-Length: 954
      Date: Thu, 30 Jun 2005 09:27:26 GMT
      Server: Apache-Coyote/1.1


      嘿嘿,原來是一個帶WWW-Authenticate的401錯誤啊。自己寫個jsp模擬一下看看怎么樣:

      <%
      response.addHeader("WWW-Authenticate","Basic realm=\"Tomcat Manager Application\"");
      response.sendError(401,"Unauthorized");
      %>

      果然,一個一模一樣的登陸窗口跳出來了。不過身份驗證的具體過程要怎么做呢?google了一下,果然看到好東西了: http://www./showContent.asp?projectID=2083



      按照說明構(gòu)造了一個jsp文件:

      <%
      sun.misc.BASE64Decoder decoder 
      = new sun.misc.BASE64Decoder();
      boolean authenticated 
      = false;
      String authorization 
      = request.getHeader("authorization");
      System.
      out.println("authorization:"+authorization);
      if (authorization != null{
        
      if (authorization.startsWith("Basic")){
          authorization 
      = authorization.substring(authorization.indexOf( )+1);
          
      byte[] bytes = decoder.decodeBuffer(authorization);
          authorization 
      = new String(bytes);
          String userName 
      = authorization.substring(0,authorization.indexOf(:));
          String password 
      = authorization.substring(authorization.indexOf(:)+1);
          System.
      out.println("userName:"+userName);
          System.
      out.println("password:"+password);
          authenticated 
      =userName.equals("abc"&& password.equals("abc");
        }
      else if (authorization.startsWith("Digest")){
          String userName 
      = authorization.substring(authorization.indexOf("username="));
          userName 
      = userName.substring("username=\"".length());
          userName = userName.substring(0,userName.indexOf("));
          String password 
      = authorization.substring(authorization.indexOf("response="));
          password 
      = password.substring("response=\"".length());
          password = password.substring(0,password.indexOf("));
          authenticated 
      =userName.equals("abc"&& password.equals("3cf1135d3b8e20dd9272d06288569a56");
        }

      }

      if (!authenticated){
        
      //   response.addHeader("WWW-Authenticate","Digest realm=\"Tomcat Manager Application\"");
        response.addHeader("WWW-Authenticate","Basic realm=\"Tomcat Manager Application\"");
        response.sendError(
      401,"Unauthorized");
      }
      else{
        
      out.println("hello abc");
      }

      %>



      cool,和tomcat一模一樣的登陸頁面做出來了。

      用戶名密碼均為abc,hard code在代碼里面了。不過還沒查到Digest方式的情況下是對哪些信息進(jìn)行MD5的

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多