国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java Spring Security OAuth2.0 通過token 獲取用戶信息(ID)

這篇具有很好參考價值的文章主要介紹了Java Spring Security OAuth2.0 通過token 獲取用戶信息(ID)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Authentication(身份認證)

通過獲取Spring 身份認證(Authentication)來獲取用戶信息,這種方式必須
①請求頭中攜帶Authorization token

②請求參數(shù)中攜帶access_token =token 參數(shù)
才能有效獲取用戶信息

    String userId;
	//獲取身份驗證
	Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
	if (authentication instanceof OAuth2Authentication) {
		OAuth2Authentication oAuth2Authentication = (OAuth2Authentication)authentication;
		Object details = oAuth2Authentication.getUserAuthentication().getDetails();
		if (details == null) {
			log.error("獲取用戶信息失敗!");
			throw new UserException("獲取用戶信息失??!");
		} else {
			try {
				//獲取用戶詳細信息
				Map<String, ?> userInfo = (Map)details;
				userId= userInfo == null ? null : String.valueOf(userInfo.get("user_id"));
			} catch (Exception var5) {
				log.error(var5.getMessage());
				throw new ClassCastException("類型轉(zhuǎn)換異常");
			}
		}
	} 

JwtHelper(token解密)

1)那我如果不使用常規(guī)傳遞模式,而使用自定義token參數(shù)名、或者其他渠道獲取的token;
2)需要使用JwtHelper 進行解密;
示例代碼中 使用的請求參數(shù)名就是 T,通過T 參數(shù)獲取token 并且解密文章來源地址http://www.zghlxwxcb.cn/news/detail-616200.html

	//獲取請求request
	ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
	HttpServletRequest request = attributes.getRequest();

	//獲取token管理服務(wù)
	BearerTokenExtractor bearerTokenExtractor = new BearerTokenExtractor();
	//通過token管理提取token
	Authentication extract = bearerTokenExtractor.extract(request);
    Object principal =  extract == null ? null : extract.getPrincipal() ;

	//獲取token
	String token;
	if (Objects.isNull(extract)){
	token = request.getParameter("T"); //自定義參數(shù)token名稱
	}else {
	token = String.valueOf(extract.getPrincipal());
	}
	//解析token
	Jwt jwt = JwtHelper.decode(token);
	String claimsStr = jwt.getClaims();
	Map<String, Object> claims = JsonParserFactory.create().parseMap(claimsStr);
	String userId = String.valueOf(claims.get("user_id"));

到了這里,關(guān)于Java Spring Security OAuth2.0 通過token 獲取用戶信息(ID)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Spring Security OAuth2.0 - 學(xué)習(xí)筆記

    Spring Security OAuth2.0 - 學(xué)習(xí)筆記

    OAuth2.0是一個開放標準,允許用戶授權(quán)第三方應(yīng)用程序訪問他們存儲在另外的服務(wù)提供者上的信息,而不需要將用戶和密碼提供給第三方應(yīng)用或分享數(shù)據(jù)的所有內(nèi)容。 1)授權(quán)碼模式 2)簡化模式 3)密碼模式 4)客戶端模式 普通令牌只是一個隨機的字符串,沒有特殊的意義,

    2024年02月16日
    瀏覽(59)
  • Spring Security實現(xiàn)OAuth2協(xié)議及實戰(zhàn)

    Spring Security實現(xiàn)OAuth2協(xié)議及實戰(zhàn)

    文章篇幅較長,愿讀者耐心看完。如有不足之處,請指正。 一.OAuth2介紹 1.1 OAuth2是什么 怎么用 OAuth2是目前最流行的授權(quán)協(xié)議,用來授權(quán)第三方應(yīng)用,獲取用戶數(shù)據(jù)。 舉個例子:快遞員想要進入小區(qū),有3種方式。1是業(yè)主遠程開門,2是業(yè)主告訴門禁密碼,3是使用令牌(Oaut

    2024年02月08日
    瀏覽(21)
  • Spring Security OAuth2 遠程命令執(zhí)行漏洞

    Spring Security OAuth2 遠程命令執(zhí)行漏洞

    cd vulhub/spring/CVE-2016-4977/ docker-compose up -d 訪問 http://192.168.10.171:8080/oauth/authorize?response_type=${233*233}client_id=acmescope=openidredirect_uri=http://test 用admin:admin登陸 出現(xiàn)以下報錯,表示漏洞存在(response_type里面的命令執(zhí)行了) poc.py #!/usr/bin/env python message = input(‘Enter message to encode:’) p

    2024年02月09日
    瀏覽(22)
  • 微服務(wù)安全Spring Security Oauth2實戰(zhàn)

    微服務(wù)安全Spring Security Oauth2實戰(zhàn)

    Spring Authorization Server 是一個框架,它提供了 OAuth 2.1 和 OpenID Connect 1.0 規(guī)范以及其他相關(guān)規(guī)范的實現(xiàn)。它建立在 Spring Security 之上,為構(gòu)建 OpenID Connect 1.0 身份提供者和 OAuth2 授權(quán)服務(wù)器產(chǎn)品提供了一個安全、輕量級和可定制的基礎(chǔ)。說白了,Spring Authorization Server 就是一個**認

    2024年02月03日
    瀏覽(28)
  • Spring Security與OAuth2的完美結(jié)合

    OAuth2是一種流行的授權(quán)框架,它允許用戶授權(quán)第三方應(yīng)用程序訪問他們的資源。Spring Security是一個強大的安全框架,它提供了一系列的安全功能。本文將介紹如何將Spring Security與OAuth2整合,以實現(xiàn)更加安全和可靠的應(yīng)用程序。 OAuth2的基本概念 OAuth2是一個授權(quán)框架,它允許用

    2024年02月05日
    瀏覽(20)
  • SpringCloud微服務(wù)整合Spring Security OAuth2

    SpringCloud微服務(wù)整合Spring Security OAuth2

    首先得了解什么是OAuth2,這個的話可以參見博客: https://blog.csdn.net/weixin_42272869/article/details/112260123 https://www.bilibili.com/video/BV1D94y1Z7t1?p=33vd_source=bf9d70f3d2a451db07f40b6407c95a77 本文采用的是使用最廣泛的、安全性最高的 授權(quán)碼模式 進行講解。 單獨創(chuàng)建一個鑒權(quán)微服務(wù)auth,負責(zé)整個

    2024年02月09日
    瀏覽(41)
  • Spring Security對接OIDC(OAuth2)外部認證

    前后端分離項目對接OIDC(OAuth2)外部認證,認證服務(wù)器可以使用Keycloak。 后端已有用戶管理和權(quán)限管理,需要外部認證服務(wù)器的用戶名和業(yè)務(wù)系統(tǒng)的用戶名一致才可以登錄。 后臺基于Spring Boot 2.7 +?Spring Security 流程: 前臺瀏覽器跳轉(zhuǎn)到? 后臺地址 +?/login/oauth2/authorization/my-oid

    2024年02月21日
    瀏覽(25)
  • spring-security -oauth2 整合 JWT

    spring-security -oauth2 整合 JWT

    在這個基礎(chǔ)上,進行整合。 spring security oauth2學(xué)習(xí) -- 快速入門_本郡主是喵的博客-CSDN博客 先把? reids,common-pools? 等依賴刪掉。 刪掉redis的下相關(guān)配置 1.1?導(dǎo)入依賴 1.2 核心代碼 創(chuàng)建 jwtTokenConfig.java 在 AuthenticationServer.java 里面新增這些。 ?運行,啟動! ?復(fù)制這個token去官網(wǎng)解析

    2024年02月09日
    瀏覽(23)
  • 搭建spring security oauth2認證授權(quán)服務(wù)器

    搭建spring security oauth2認證授權(quán)服務(wù)器

    下面是在spring security項目的基礎(chǔ)上搭建spring security oauth2認證授權(quán)服務(wù)器 spring security oauth2認證授權(quán)服務(wù)器主要需要以下依賴 Spring Security對OAuth2默認可訪問端點 ?/oauth/authorize? ??:申請授權(quán)碼code,涉及類? ?AuthorizationEndpoint? ? ?/oauth/token? ??:獲取令牌token,涉及類?

    2024年01月21日
    瀏覽(20)
  • Spring Security 源碼解讀:OAuth2 Authorization Server

    Spring Security 源碼解讀:OAuth2 Authorization Server

    樣例代碼請參考:spring-security-oauth2.0-sample Spring Authorization Server剛發(fā)展不久,還沒有springboot版本,而Resource Server有,但是兩個底層很多不兼容,會重復(fù)引入不同版本的jar包。 另外,該 spring-security-oauth2-authorization-server 依賴支持OAuth2.1草案規(guī)范。 關(guān)于 OAuth2.1 草案介紹請參考

    2023年04月22日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包