Java源碼分析系列之HttpServletRequest源碼分析


 從源碼當中 我們可以 得知,HttpServletRequest其實 實際上 並 不是一個類,它只是一個標准,一個 接口而已,它的 父類是ServletRequest。

認證方式

public interface HttpServletRequest extends ServletRequest 

  從閱讀源碼 當中 ,我們 可以 獲得 如下認證信息:

    /**
    * String identifier for Basic authentication. Value "BASIC"
    */
    public static final String BASIC_AUTH = "BASIC";
    /**
    * String identifier for Form authentication. Value "FORM"
    */
    public static final String FORM_AUTH = "FORM";
    /**
    * String identifier for Client Certificate authentication. Value "CLIENT_CERT"
    */
    public static final String CLIENT_CERT_AUTH = "CLIENT_CERT";
    /**
    * String identifier for Digest authentication. Value "DIGEST"
    */
    public static final String DIGEST_AUTH = "DIGEST";

  分別是 BASIC,FORM,CLIENT_CERT,DIGEST,那么 這幾種不同的認證有什么區別呢?

  下面 是一些 介紹 :

  Basic:這種 情況下 ,需要 用戶名和密碼 進行認證,用用戶 輸入的用戶名 和密碼 和 服務器上 的數據 中 的當前用戶的用戶名和 密碼 進行對比 。具體的流程如下圖所示 :

  1. 客戶端請求服務器的受保護的資源
  2. 服務器發一個 請求,去 客戶端 請求 username和password.
  3. 客戶端 發送 用戶名 和密碼給服務端
  4. 服務端返回相應的數據給 客戶端 

Diagram of four steps in HTTP basic authentication between
client and server

 

  這種 認證 方式並不是安全的,客戶端發送的用戶名 和密碼 是 Base64形式 加密的文本,這種情況的 用戶名和 密碼 是會被暴露 出來的,如果 有 人能夠截獲用戶名和密碼 ,這是 很 容易被解碼的,當然 如果 使用 的是 SSL,HTTPS等 策略的話,會減少這種風險的發生率。

參考資料


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM