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

JAVA中HTTP基本認證(Basic Authentication)實現(xiàn)

 更新時間:2024年07月15日 10:04:42   作者:sayyy  
HTTP 基本認證是一種簡單的認證方法,本文主要介紹了JAVA中HTTP基本認證(Basic Authentication),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

什么是 HTTP 基本認證

HTTP 基本認證是一種簡單的認證方法??蛻舳丝梢酝ㄟ^用戶名和密碼進行認證。這些憑證以特定的格式在 Authorization HTTP Header 中發(fā)送。一般它以 Basic 關鍵字開始,后面是一個 base64 編碼的用戶名:密碼值。冒號字符在這里很重要。頭部應該嚴格遵循這個格式。

例如,要用 javanorth 用戶名和 http 密碼進行認證,我們必須發(fā)送這個 Header。

Basic amF2YW5vcnRoOmh0dHA=

我們可以通過使用 base64 解碼器和檢查解碼的結果來驗證。

服務端這么做

  • 服務端告知客戶端使用 Basic Authentication 方式進行認證
  • 服務端接收并處理客戶端按照 Basic Authentication 方式發(fā)送的數(shù)據(jù)

服務端告知客戶端使用 Basic Authentication 方式進行認證

  • 服務端返回 401(Unauthozied)狀態(tài)碼給客戶端
  • 服務端在Response 的 header “WWW-Authenticate” 中添加信息

在這里插入圖片描述

服務端接收并處理客戶端按照 Basic Authentication 方式發(fā)送的數(shù)據(jù)

private boolean checkBasicAuthorization(HttpServletRequest request) {
	String rawStringAuthorization = request.getHeader("Authorization");
	Assert.isTrue(StringUtils.startsWith(rawStringAuthorization, "Basic"), "Basic 認證失敗");
	String base64StringAuthorization = StringUtils.replaceOnce(rawStringAuthorization, "Basic", "");
	base64StringAuthorization = StringUtils.trim(base64StringAuthorization);
	
	byte[] bytesAuthorization = Base64Utils.decodeFromString(base64StringAuthorization);
	String stringAuthorization = new String(bytesAuthorization);
	
	String[] arrUserAndPass = StringUtils.split(stringAuthorization, ":");
	Assert.isTrue(2==arrUserAndPass.length, "Basic 認證失敗");
	
	String username = arrUserAndPass[0];
	String password = arrUserAndPass[1];
	
	if (StringUtils.equals(username, "myuser") && StringUtils.equals(password, "mypassword")) {
		return true;
	}
	
	return false;
}
  • org.apache.commons.lang3.StringUtils
  • org.springframework.util.Base64Utils

客戶端這么做

客戶端按照 Basic Authentication 方式向服務端發(fā)送數(shù)據(jù)

如果客戶端是瀏覽器

瀏覽器支持 Basic Authentication 方式認證。瀏覽器會自動彈出提示窗體,并自動向該地址發(fā)送認證請求。

瀏覽器自動彈出的對話框:

在這里插入圖片描述

點擊“登錄”后,瀏覽器自動向該地址發(fā)送請求:

在這里插入圖片描述

  • 輸入用戶名:myuser,密碼:mypassword
  • “bXl1c2VyOm15cGFzc3dvcmQ=” = base64("myuser:mypassword")

如果客戶端是 RestTemplat

@Configuration
public class RestTemplateConfig {
	@Bean
	public RestTemplate restTemplate() {
		RestTemplate restTemplate = new RestTemplate();
		restTemplate.getInterceptors()
			.add(new BasicAuthenticationInterceptor("myuser","mypassword")); 
;
		
		return restTemplate;
	}
}

如果客戶端是 HttpClient

其它

Basic Authentication 方式的認證,通常不需要登錄頁面,只需要登錄Action即可。

在這里插入圖片描述

參考

https://developer.atlassian.com/server/jira/platform/basic-authentication/

到此這篇關于JAVA中HTTP基本認證(Basic Authentication)的文章就介紹到這了,更多相關JAVA HTTP基本認證內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Spring事務原理解析

    Spring事務原理解析

    Spring事務有可能會提交,回滾、掛起、恢復,所以Spring事務提供了一種機制,可以讓程序員來監(jiān)聽當前Spring事務所處于的狀態(tài),這篇文章主要介紹了Spring底層事務原理,需要的朋友可以參考下
    2022-12-12
  • java學習粗略路線的方法

    java學習粗略路線的方法

    下面小編就為大家?guī)硪黄猨ava學習粗略路線的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • Spring?boot整合dubbo+zookeeper的詳細過程

    Spring?boot整合dubbo+zookeeper的詳細過程

    本文講解Spring?Boot整合Dubbo與Zookeeper實現(xiàn)API、Provider、Consumer模式,包含依賴配置、啟動類注解、服務注冊與調用步驟,及QoS、超時、負載均衡等參數(shù)設置,確保分布式服務通信正常運行,感興趣的朋友一起看看吧
    2025-07-07
  • java反射原理制作對象打印工具

    java反射原理制作對象打印工具

    本文主要給大家介紹了java反射原理制作對象打印工具的方法和代碼,以及一個熱心網(wǎng)友給出的更加簡潔方便的代碼,小伙伴們需要的話可以參考下。
    2015-12-12
  • 基于IDEA2018卡死不動的解決方式(好用)

    基于IDEA2018卡死不動的解決方式(好用)

    這篇文章主要介紹了基于IDEA2018卡死不動的解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • SpringBoot中獲取微信用戶信息的方法

    SpringBoot中獲取微信用戶信息的方法

    這篇文章主要介紹了SpringBoot中獲取微信用戶信息的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • Springboot項目快速實現(xiàn)過濾器功能

    Springboot項目快速實現(xiàn)過濾器功能

    上篇文章已經(jīng)給大家介紹了Springboot項目如何快速實現(xiàn)Aop功能,這篇文章給大家介紹Springboot項目如何快速實現(xiàn)過濾器功能,感興趣的小伙伴可以參考閱讀
    2023-03-03
  • struts2框架入門

    struts2框架入門

    本文主要介紹了struts2框架的基礎入門知識。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • sms4j?2.0?全新來襲功能的調整及maven變化詳解

    sms4j?2.0?全新來襲功能的調整及maven變化詳解

    這篇文章主要介紹了sms4j?2.0?全新來襲功能的調整及maven變化詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • 詳解JAVA 弱引用

    詳解JAVA 弱引用

    這篇文章主要介紹了 JAVA 弱引用的相關資料,幫助大家更好的理解和學習java引用對象,感興趣的朋友可以了解下
    2020-08-08

最新評論

镇远县| 张家口市| 彰化市| 桦甸市| 鹤峰县| 灵武市| 泰安市| 沭阳县| 蓝田县| 石河子市| 扎鲁特旗| 潞城市| 彰化市| 兴文县| 大同市| 鄂州市| 公主岭市| 阳新县| 习水县| 定结县| 专栏| 德令哈市| 绵阳市| 孝感市| 永康市| 昌图县| 浦东新区| 四子王旗| 福海县| 顺昌县| 阜阳市| 舟山市| 甘孜县| 太保市| 太谷县| 安顺市| 彰武县| 连城县| 吉首市| 濮阳县| 田林县|