国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

python 做的網(wǎng)站有哪些如何在網(wǎng)絡(luò)上推廣產(chǎn)品

python 做的網(wǎng)站有哪些,如何在網(wǎng)絡(luò)上推廣產(chǎn)品,java開發(fā)app需要學會哪些,創(chuàng)業(yè)商機一.簡介 這篇文章來學習下security的認證方式其中的HTTP基本認證。 二.Spring Security的認證方式 2.1什么是認證 認證: 就是用來判斷系統(tǒng)中是否存在某用戶,并判斷該用戶的身份是否合法的過程,解決的其實是用戶登錄的問題。認證的存在,是…

一.簡介

這篇文章來學習下security的認證方式其中的HTTP基本認證。

二.Spring Security的認證方式

2.1什么是認證

認證:
就是用來判斷系統(tǒng)中是否存在某用戶,并判斷該用戶的身份是否合法的過程,解決的其實是用戶登錄的問題。認證的存在,是為了保護系統(tǒng)中的隱私數(shù)據(jù)與資源,只有合法的用戶才可以訪問系統(tǒng)中的資源。

2.2認證的方式

在Spring Security中,常見的認證方式可以分為HTTP層面和表單層面,常見的認證方式如下:

  1. HTTP基本認證;
  2. Form表單認證
  3. HTTP摘要認證;

這篇文章先講HTTP基本認證

三. HTTP基本認證

3.1HTTP基本認證概念

在Spring Security 4.x版本中,默認采用的登錄方式是Http基本認證,該方式會彈出一個對話框,要求用戶輸入用戶名和密碼。在每次進行基本認證請求時,都會在Authorization請求頭中利用Base64對 “用戶:密碼” 字符串進行編碼。這種方式并不安全,并不適合在Web項目中使用,但它是一些現(xiàn)代主流認證的基礎(chǔ),而且在Spring Security的OAuth中,內(nèi)部認證的默認方式就是用的Http基本認證。

3.2HTTP基本認證核心API

在基本認證時,系統(tǒng)中所涉及到的各種核心API及其執(zhí)行流程,在這篇文章中,我們先對這些有基本了解即可。
在這里插入圖片描述
簡單的執(zhí)行流程如下:

Filter->構(gòu)造Token->AuthenticationManager->轉(zhuǎn)給Provider處理->認證處理成功后續(xù)操作或者不通過拋異常

3.3HTTP基本認證步驟(重點)

HTTP基本認證是在RFC2616標準中定義的一種認證模式,它以一種很簡單的方式與用戶進行交互。HTTP基本認證可以分為如下4個步驟:

  1. 客戶端首先發(fā)起一個未攜帶認證信息的請求;
  2. 然后服務(wù)器端返回一個401 Unauthorized的響應(yīng)信息,并在WWW-Authentication頭部中說明認證形式:當進行HTTP基本認證時,WWW-Authentication會被設(shè)置為Basic realm=“被保護的頁面”;
  3. 接下來客戶端會收到這個401 Unauthorized響應(yīng)信息,并彈出一個對話框,詢問用戶名和密碼。當用戶輸入后,客戶端會將用戶名和密碼使用冒號進行拼接并用Base64編碼,然后將其放入到請求的Authorization頭部并發(fā)送給服務(wù)器;
  4. 最后服務(wù)器端對客戶端發(fā)來的信息進行解碼得到用戶名和密碼,并對該信息進行校驗判斷是否正確,最終給客戶端返回響應(yīng)內(nèi)容。

3.4HTTP基本認證的弊端

HTTP基本認證是一種無狀態(tài)的認證方式,與表單認證相比,HTTP基本認證是一種基于HTTP層面的認證方式,無法攜帶Session信息,也就無法實現(xiàn)Remember-Me功能。另外,用戶名和密碼在傳遞時僅做了一次簡單的Base64編碼,幾乎等同于以明文傳輸,極易被進行密碼竊聽和重放攻擊。所以在實際開發(fā)中,很少會使用這種認證方式來進行安全校驗。

接下來,就用代碼來實現(xiàn)下HTTP基本認證的功能。

四. 創(chuàng)建SpringSecurity項目

參考之前的文章,這邊不做敘述。

五.代碼實現(xiàn)

5.1創(chuàng)建SecurityConfig配置類

創(chuàng)建SecurityConfig類,繼承自WebSecurityConfigurerAdapter父類,代碼如下:

 
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {@Overrideprotected void configure(HttpSecurity http) throws Exception {//1.配置基本認證方式http.authorizeRequests()//對任意請求都進行認證.anyRequest().authenticated().and()//開啟basic認證.httpBasic();}}

這段代碼中httpBasic()方法,就是用來開啟基本認證的,而且默認采用的就是基本認證!

5.2創(chuàng)建web接口

HelloController類的代碼如下:


import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloController {@GetMapping("/hello")public String hello() {return "德瑪西亞";}}

5.3yml配置文件

創(chuàng)建一個application.yml配置文件,配置如下:

spring:security:user:name: demaxiyapassword: 123

四.功能驗證

4.1啟動項目

接著把項目啟動起來,打開瀏覽器及調(diào)試窗口,然后訪問/hello接口,這時候就可以看到瀏覽器中彈出了一個登陸窗口,截圖如下:
在這里插入圖片描述
提示輸入自己的用戶名和密碼,認證成功后,即可訪問自己的web接口。

五. Basic認證詳解

對上面的認證過程進行詳細的分析。

5.1Basic Authorization

此時我們在自己的瀏覽器調(diào)試窗口中,查看響應(yīng)頭,可以看到WWW-Authenticate認證信息:

WWW-Authenticate:Basic realm=“Realm”,截圖如下:
在這里插入圖片描述

5.1.1各響應(yīng)信息含義如下

  1. WWW-Authenticate: 表示服務(wù)器告知瀏覽器進行代理認證工作。
  2. Basic: 表示認證類型為Basic認證。
  3. realm=“Realm”: 表示認證域名為Realm域。

5.1.2 realm的概念

realm=“Realm”: 指認證域名為Realm,HttpBasic默認的realm名為Realm。在未認證用戶請求不同的接口時,后臺會根據(jù)分配給該接口的域,響應(yīng)不同的realm名稱,并且用不同的用戶名/密碼進行認證。所以用戶每請求一個新的Realm的url,都會彈框要求使用新的Realm的用戶名/密碼進行認證,就好比不同的角色登錄只能請求屬于該角色的url。

5.2基本認證過程

此時的響應(yīng)碼為401,如下圖所示:
在這里插入圖片描述
根據(jù)401和以上響應(yīng)頭信息,瀏覽器會彈出一個對話框,要求輸入 用戶名/密碼,Basic認證會將其拼接成 “用戶名:密碼” 格式,中間是一個冒號,并利用Base64編碼成加密字符串xxx;然后在請求頭中附加 Authorization: Basic xxx 信息,發(fā)送給后臺認證;后臺需要利用Base64來進行解碼xxx,得到用戶名和密碼,再校驗 用戶名:密碼 信息。

  1. 如果認證錯誤,瀏覽器會保持彈框;
  2. 如果認證成功,瀏覽器會緩存有效的Base64編碼,在之后的請求中,瀏覽器都會在請求頭中添加該有效編碼。

以上就是HTTP基本認證的內(nèi)部執(zhí)行過程。
在這里插入圖片描述

5.3注銷Basic認證

在成功認證之后,Basic認證會把Authorization認證信息緩存在瀏覽器中一段時間,之后每次請求接口時都會自動帶上,所以直到 用戶關(guān)閉瀏覽器才會銷毀認證信息,也就是說我們無法在服務(wù)端進行有效的注銷。

不過在請求注銷時,前端也可以手動 在請求頭配置一個錯誤的Authorization,或者在瀏覽器的命令行執(zhí)行 document.execuCommand(“ClearAuthenticationCache”)方法 來清空認證信息,但該方式對Chrome瀏覽器無效。我們在調(diào)試基本認證時,可以直接開啟無痕模式,避免很多因為緩存造成的問題。

http://aloenet.com.cn/news/41803.html

相關(guān)文章:

  • 顏色搭配的網(wǎng)站班級優(yōu)化大師官網(wǎng)下載
  • 什么網(wǎng)站可以做醫(yī)療設(shè)備的磁力鏈
  • 做網(wǎng)站 要域名 主機 還有啥東莞網(wǎng)站seo公司
  • 建設(shè)銀行網(wǎng)站機構(gòu)長沙seo推廣外包
  • 金華網(wǎng)站建設(shè)外包百度定位店鋪位置怎么設(shè)置
  • 臺式機做網(wǎng)站服務(wù)器百度的首頁
  • 東莞市住房建設(shè)局網(wǎng)站成都百度推廣開戶公司
  • 鄭州網(wǎng)站建設(shè)漢獅百度下載安裝到桌面
  • 天津河東區(qū)網(wǎng)站建設(shè)持續(xù)優(yōu)化完善防控措施
  • 今日河南新聞聯(lián)播上海整站seo
  • 專門做簡歷的網(wǎng)站有哪些長沙關(guān)鍵詞優(yōu)化方法
  • 檢察院加強網(wǎng)站建設(shè)長沙優(yōu)化網(wǎng)站推廣
  • 在線做heatmap的網(wǎng)站谷歌推廣怎么操作
  • 深夜免費軟件app下載seo營銷的概念
  • 一般網(wǎng)站用什么軟件做怎么注冊一個自己的網(wǎng)站
  • 軟件公司網(wǎng)站系統(tǒng)集成建設(shè)營銷推廣的特點
  • wordpress寄出郵箱地址小學生班級優(yōu)化大師
  • 外貿(mào)平臺免費網(wǎng)站網(wǎng)站優(yōu)化推廣平臺
  • 學做網(wǎng)站設(shè)計需要多少錢網(wǎng)頁制作教程步驟
  • 網(wǎng)站建設(shè)整個過程個人介紹網(wǎng)頁制作
  • 做外貿(mào)在哪個網(wǎng)站北京百度推廣電話號碼
  • 上海阿里巴巴做網(wǎng)站免費的短視頻app大全下載
  • 商業(yè)網(wǎng)站改版需要多久愛站網(wǎng)綜合查詢
  • 無錫工廠網(wǎng)站建設(shè)南寧百度關(guān)鍵詞推廣
  • 松江營銷型網(wǎng)站建設(shè)b站是哪個網(wǎng)站
  • ui設(shè)計做兼職的網(wǎng)站如何寫市場調(diào)研報告
  • 女裝網(wǎng)站建設(shè)規(guī)劃網(wǎng)站怎樣被百度收錄
  • 怎么做網(wǎng)站的后臺管理系統(tǒng)手機360優(yōu)化大師官網(wǎng)
  • 微網(wǎng)站后臺怎么注冊互聯(lián)網(wǎng)推廣平臺有哪些公司
  • 辦公室現(xiàn)代簡約裝修效果圖武漢seo服務(wù)