最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Spring Security中的HttpBasic登錄驗證模式

 更新時間:2019年11月19日 09:50:25   作者:字母哥博客  
HttpBasic登錄驗證模式是Spring Security實現(xiàn)登錄驗證最簡單的一種方式,也可以說是最簡陋的一種方式,這篇文章主要介紹了Spring Security的HttpBasic登錄驗證模式,需要的朋友可以參考下

一、HttpBasic模式的應(yīng)用場景

HttpBasic登錄驗證模式是Spring Security實現(xiàn)登錄驗證最簡單的一種方式,也可以說是最簡陋的一種方式。它的目的并不是保障登錄驗證的絕對安全,而是提供一種“防君子不防小人”的登錄驗證。

就好像是我小時候?qū)懭沼?,都買一個帶小鎖頭的日記本,實際上這個小鎖頭有什么用呢?如果真正想看的人用一根釘子都能撬開。它的作用就是:某天你的父母想偷看你的日記,拿出來一看還帶把鎖,那就算了吧,怪麻煩的。

舉一個我使用HttpBasic模式的進行登錄驗證的例子:我曾經(jīng)在一個公司擔任部門經(jīng)理期間,開發(fā)了一套用于統(tǒng)計效率、分享知識、生成代碼、導出報表的Http接口。純粹是為了工作中提高效率,同時我又有一點點小私心,畢竟各部之間是有競爭的,所以我給這套接口加上了HttpBasic驗證。公司里隨便一個技術(shù)人員,最多只要給上一兩個小時,就可以把這個驗證破解了。說白了,這個工具的數(shù)據(jù)不那么重要,加一道鎖的目的就是不讓它成為公開數(shù)據(jù)。如果有心人破解了,真想看看這里面的數(shù)據(jù),其實也無妨。這就是HttpBasic模式的典型應(yīng)用場景。

二、spring boot2.0整合Spring security

spring boot 2,x版本maven方式引入Spring security坐標。

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-security</artifactId>
</dependency>

三、HttpBasic登錄認證模式

如果使用的Spring Boot版本為1.X版本,依賴的Security 4.X版本,那么就無需任何配置,啟動項目訪問則會彈出默認的httpbasic認證.

我們現(xiàn)在使用的是spring boot2.0版本(依賴Security 5.X版本),HttpBasic不再是默認的驗證模式,在spring security 5.x默認的驗證模式已經(jīng)是表單模式。所以我們要使用Basic模式,需要自己調(diào)整一下。并且security.basic.enabled已經(jīng)過時了,所以我們需要自己去編碼實現(xiàn)。

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
  
  @Override
  protected void configure(HttpSecurity http) throws Exception {
   http.httpBasic()//開啟httpbasic認證
   .and()
   .authorizeRequests()
   .anyRequest()
   .authenticated();//所有請求都需要登錄認證才能訪問
  }
}

啟動項目,在項目后臺有這樣的一串日志打印,冒號后面的就是默認密碼。

Using generated security password: 0cc59a43-c2e7-4c21-a38c-0df8d1a6d624

我們可以通過瀏覽器進行登錄驗證,默認的用戶名是user.(下面的登錄框不是我們開發(fā)的,是HttpBasic模式自帶的)

當然我們也可以通過application.yml指定配置用戶名密碼

spring:
  security:
   user:
    name: admin
    password: admin

四、HttpBasic模式的原理說明

  • 首先,HttpBasic模式要求傳輸?shù)挠脩裘艽a使用Base64模式進行加密。如果用戶名是 "admin"  ,密碼是“ admin”,則將字符串"admin:admin" 使用Base64編碼算法加密。加密結(jié)果可能是:YWtaW46YWRtaW4=。
  • 然后,在Http請求中使用Authorization作為一個Header,“Basic YWtaW46YWRtaW4=“作為Header的值,發(fā)送給服務(wù)端。(注意這里使用Basic+空格+加密串)
  • 服務(wù)器在收到這樣的請求時,到達BasicAuthenticationFilter過濾器,將提取“ Authorization”的Header值,并使用用于驗證用戶身份的相同算法Base64進行解碼。
  • 解碼結(jié)果與登錄驗證的用戶名密碼匹配,匹配成功則可以繼續(xù)過濾器后續(xù)的訪問。

所以,HttpBasic模式真的是非常簡單又簡陋的驗證模式,Base64的加密算法是可逆的,你知道上面的原理,分分鐘就破解掉。我們完全可以使用PostMan工具,發(fā)送Http請求進行登錄驗證。

總結(jié)

以上所述是小編給大家介紹的Spring Security中的HttpBasic登錄驗證模式,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • Java8特性使用Function代替分支語句

    Java8特性使用Function代替分支語句

    這篇文章主要介紹了Java8特性使用Function代替分支語句,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • Java EasyExcel導出報內(nèi)存溢出的解決辦法

    Java EasyExcel導出報內(nèi)存溢出的解決辦法

    使用EasyExcel進行大數(shù)據(jù)量導出時容易導致內(nèi)存溢出,特別是在導出百萬級別的數(shù)據(jù)時,你有遇到過這種情況嗎,以下是小編整理的解決該問題的一些常見方法,需要的朋友可以參考下
    2024-10-10
  • java serialVersionUID解決序列化類版本不一致問題面試精講

    java serialVersionUID解決序列化類版本不一致問題面試精講

    這篇文章主要為大家介紹了serialVersionUID解決序列化類版本不一致問題的面試精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • 詳解如何在springcloud分布式系統(tǒng)中實現(xiàn)分布式鎖

    詳解如何在springcloud分布式系統(tǒng)中實現(xiàn)分布式鎖

    最近在看分布式鎖的資料,本文就介紹一下利用springcloud結(jié)合redis實現(xiàn)分布式鎖,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • java中串行流和并行流區(qū)別小結(jié)

    java中串行流和并行流區(qū)別小結(jié)

    串行流和并行流是兩種處理流操作的方式,串行流適用于小數(shù)據(jù)量且簡單的數(shù)據(jù)處理,并行流則適用于大規(guī)模數(shù)據(jù)處理和需要并行計算的場景,能夠利用多線程并行處理,選擇使用哪種流取決于數(shù)據(jù)量大小、處理復雜度和是否需要并行計算,下面就來具體介紹一下兩者的區(qū)別
    2024-09-09
  • 詳解MySQL的簡易封裝以及使用

    詳解MySQL的簡易封裝以及使用

    本文主要介紹了MySQL的簡易封裝以及使用。具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • mybatis返回map類型數(shù)據(jù)空值字段不顯示的解決方案

    mybatis返回map類型數(shù)據(jù)空值字段不顯示的解決方案

    這篇文章主要介紹了mybatis返回map類型數(shù)據(jù)空值字段不顯示的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Spring?Boot虛擬線程Webflux在JWT驗證和MySQL查詢性能比較

    Spring?Boot虛擬線程Webflux在JWT驗證和MySQL查詢性能比較

    這篇文章主要為大家介紹了Spring Boot虛擬線程與Webflux在JWT驗證和MySQL查詢上的性能比較,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • Spring中xml配置文件的基礎(chǔ)使用方式詳解

    Spring中xml配置文件的基礎(chǔ)使用方式詳解

    這篇文章主要介紹了Spring中xml配置文件的基礎(chǔ)使用方式,主要包括xml配置文件的讀取,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • RocketMQ?Namesrv架構(gòu)工作原理詳解

    RocketMQ?Namesrv架構(gòu)工作原理詳解

    這篇文章主要為大家介紹了RocketMQ?Namesrv架構(gòu)工作原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08

最新評論

农安县| 余江县| 烟台市| 红原县| 新蔡县| 石家庄市| 万源市| 资源县| 海林市| 长沙市| 文安县| 东明县| 新化县| 开鲁县| 灵璧县| 茌平县| 安丘市| 合江县| 陆丰市| 福安市| 修水县| 涿州市| 武义县| 宣城市| 舞钢市| 合肥市| 横山县| 武安市| 福泉市| 桑植县| 黎川县| 吉木萨尔县| 普洱| 上思县| 绩溪县| 六盘水市| 鸡泽县| 漳州市| 崇州市| 陕西省| 封开县|