Basic認證方式訪問url
同學們,今天我們來了解一下Basic認證。Basic認證在訪問WebApi時需要驗證賬號密碼,它是最基礎的驗證之一。通常我們裸奔一個服務的url,如果被別有用心的人拿到了,那麽他就能無限調用接口操作數據庫/獲取數據,後果可以想象。同時認證可以有效保證數據安全。好了,廢話不多說,咋們進入正題。
1.時間戳/密文傳遞驗證
2.通過token驗證
3.basic認證
……
無論是哪種方式,都是為了保證url的安全性,這個可以根據密級的提高采用不同的方式,同時還有一些其他的身份認證方式,大家有興趣可以去研究。
在HTTP協議進行通信的過程中,HTTP協議定義了基本認證過程以允許HTTP服務器對WEB瀏覽器進行用戶身份證的方法,當一個客戶端向HTTP服務 器進行數據請求時,如果客戶端未被認證,則HTTP服務器將通過基本認證過程對客戶端的用戶名及密碼進行驗證,以決定用戶是否合法。客戶端在接收到HTTP服務器的身份認證要求後,雅思考試報名費
會提示用戶輸入用戶名及密碼,然後將用戶名及密碼以BASE64加密,加密後的密文將附加於請求信息中, 如當用戶名為anjuta,密碼為:123456時,客戶端將用戶名和密碼用“:”合並,並將合並後的字符串用BASE64加密為密文,並於每次請求數據 時,將密文附加於請求頭(Request Header)中。HTTP服務器在每次收到請求包後,根據協議取得客戶端附加的用戶信息(BASE64加密的用戶名和密碼),解開請求包,對用戶名及密碼進行驗證,
如果用 戶名及密碼正確,則根據客戶端請求,返回客戶端所需要的數據;否則,返回錯誤代碼或重新要求客戶端提供用戶名及密碼。
HTTP基本認證的目標是提供簡單的用戶驗證功能,其認證過程簡單明了,適合於對安全性要求不高的系統或設備中,如大家所用路由器的配置頁面的認證,幾乎都采取了這種方式。其缺點是沒有靈活可靠的認證策略,如無法提供域(domain或realm)認證功能,另外,BASE64的加密強度非常低,可以說僅能防止sohu的搜索把它搜到了。當然,HTTP基本認證系統也可以與SSL或者Kerberos結合,實現安全性能較高(相對)的認證系統
實際上我用這個方法訪問失敗了,貌似時Authorization一直不能放到請求頭裏面,或者說是不能被解析,反正就是一直要我手動輸入賬號密碼,還希望有懂的大神來為我解析一下,感激不盡。
因此才有了下面的java實現方式!
說到這,Basic認證客戶端使用方式就說完了。下面來看看服務端的使用!
建議同學們可以把這一段單獨抽離出來,可以作為aop的前置增強,每一次執行方法前進行調用。
Basic認證方式訪問url