電商系統-用戶認證(三)基于公鑰解析JWT令牌

一、 基于私鑰生成jwt令牌

步驟:
導入認證服務

  1. 將shangcheng_user_auth工程導入到項目中去,如下圖

  2. 啟動eureka,再啟動認證服務

3) 認證服務中創建測試類
public class CreateJwtTest {
?

    /**** 創建令牌測試*/@Testpublic void testCreateToken(){//證書文件路徑String key_location="shangcheng.jks";//秘鑰庫密碼String key_password="shangcheng";//秘鑰密碼String keypwd = "shangcheng";//秘鑰別名String alias = "shangcheng";
?//訪問證書路徑ClassPathResource resource = new ClassPathResource(key_location);
?//創建秘鑰工廠KeyStoreKeyFactory keyStoreKeyFactory = new KeyStoreKeyFactory(resource,key_password.toCharArray());
?//讀取秘鑰對(公鑰、私鑰)KeyPair keyPair = keyStoreKeyFactory.getKeyPair(alias,keypwd.toCharArray());
?//獲取私鑰RSAPrivateKey rsaPrivate = (RSAPrivateKey) keyPair.getPrivate();
?//定義PayloadMap<String, Object> tokenMap = new HashMap<>();tokenMap.put("id", "1");tokenMap.put("name", "itheima");tokenMap.put("roles", "ROLE_VIP,ROLE_USER");
?//生成Jwt令牌Jwt jwt = JwtHelper.encode(JSON.toJSONString(tokenMap), new RsaSigner(rsaPrivate));
?//取出令牌String encoded = jwt.getEncoded();System.out.println(encoded);}
}

二、 基于公鑰解析jwt令牌

上面創建令牌后,我們可以對JWT令牌進行解析,這里解析需要用到公鑰,我們可以將之前生成的公鑰public.key拷貝出來用字符串變量token存儲,然后通過公鑰解密。

在shangcheng-user-oauth創建測試類com.shangcheng.token.ParseJwtTest實現解析校驗令牌數據,代碼如下:

public class ParseJwtTest {
?/**** 校驗令牌*/@Testpublic void testParseToken(){//令牌String token = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlcyI6IlJPTEVfVklQLFJPTEVfVVNFUiIsIm5hbWUiOiJpdGhlaW1hIiwiaWQiOiIxIn0.IR9Qu9ZqYZ2gU2qgAziyT38UhEeL4Oi69ko-dzC_P9-Vjz40hwZDqxl8wZ-W2WAw1eWGIHV1EYDjg0-eilogJZ5UikyWw1bewXCpvlM-ZRtYQQqHFTlfDiVcFetyTayaskwa-x_BVS4pTWAskiaIKbKR4KcME2E5o1rEek-3YPkqAiZ6WP1UOmpaCJDaaFSdninqG0gzSCuGvLuG40x0Ngpfk7mPOecsIi5cbJElpdYUsCr9oXc53ROyfvYpHjzV7c2D5eIZu3leUPXRvvVAPJFEcSBiisxUSEeiGpmuQhaFZd1g-yJ1WQrixFvehMeLX2XU6W1nlL5ARTpQf_Jjiw";
?//公鑰String publickey = "-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvFsEiaLvij9C1Mz+oyAmt47whAaRkRu/8kePM+X8760UGU0RMwGti6Z9y3LQ0RvK6I0brXmbGB/RsN38PVnhcP8ZfxGUH26kX0RK+tlrxcrG+HkPYOH4XPAL8Q1lu1n9x3tLcIPxq8ZZtuIyKYEmoLKyMsvTviG5flTpDprT25unWgE4md1kthRWXOnfWHATVY7Y/r4obiOL1mS5bEa/iNKotQNnvIAKtjBM4RlIDWMa6dmz+lHtLtqDD2LF1qwoiSIHI75LQZ/CNYaHCfZSxtOydpNKq8eb1/PGiLNolD4La2zf0/1dlcr5mkesV570NxRmU1tFm8Zd3MZlZmyv9QIDAQAB-----END PUBLIC KEY-----";
?//校驗JwtJwt jwt = JwtHelper.decodeAndVerify(token, new RsaVerifier(publickey));
?//獲取Jwt原始內容String claims = jwt.getClaims();System.out.println(claims);//jwt令牌String encoded = jwt.getEncoded();System.out.println(encoded);}
}

注:
對于令牌的解析,公鑰和私鑰是成對出現的,用正確的公鑰去解析相對應的以私鑰作為簽名的JWT令牌,否則的話無法進行解析。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/67421.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/67421.shtml
英文地址,請注明出處:http://en.pswp.cn/web/67421.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

單路由及雙路由端口映射指南

遠程登錄總會遇到登陸不上的情況&#xff0c;可能是訪問的大門沒有打開哦&#xff0c;下面我們來看看具體是怎么回事&#xff1f; 當軟件遠程訪問時&#xff0c;主機需要兩個條件&#xff0c;一是有一個唯一的公網IP地址&#xff08;運營商提供&#xff09;&#xff0c;二是開…

Spring AI 在微服務中的應用:支持分布式 AI 推理

1. 引言 在現代企業中&#xff0c;微服務架構 已成為開發復雜系統的主流方式&#xff0c;而 AI 模型推理 也越來越多地被集成到業務流程中。如何在分布式微服務架構下高效地集成 Spring AI&#xff0c;使多個服務可以協同完成 AI 任務&#xff0c;并支持分布式 AI 推理&#x…

Kafak 單例生產者實現-C#操作

前面寫了一篇入門操作的文章,因為工作需要,簡單修改了下如何實現單例生產者。 Kafka入門-C#操作_c# kafka-CSDN博客文章瀏覽閱讀1.6k次,點贊20次,收藏9次。2).報錯:“kafka.zookeeper.ZooKeeperClientTimeoutException: Timed out waiting for connection while in state…

2024年記 | 凜冬將至

放棄幻想&#xff0c;準備斗爭&#xff01; 考研or就業&#xff1f; 上大學以來&#xff0c;考研上名校在我的心里一直是一顆種子&#xff0c;2024年初&#xff0c;當時的想法是考研和就業兩手抓。買了張宇的高數現代&#xff0c;想要死磕&#xff01; 也記了挺多筆記... 如果…

基于 Jenkins 的測試報告獲取與處理并寫入 Jira Wiki 的技術總結

title: 基于 Jenkins 的測試報告獲取與處理并寫入 Jira Wiki 的技術總結 tags: - jenkins - python categories: - jenkins在軟件開發的持續集成與持續交付&#xff08;CI/CD&#xff09;流程里&#xff0c;及時、準確地獲取并分析測試報告對保障軟件質量至關重要。本文將詳細…

C# 中 default 使用詳解

總目錄 前言 在C#中&#xff0c;default 關鍵字用于表示類型默認值。它可以根據上下文推斷出適用的類型&#xff0c;并返回該類型的默認值。隨著C#版本的發展&#xff0c;default 的用法也變得更加豐富和靈活。本文將詳細介紹 default 在不同場景下的使用方法及其最佳實踐。 一…

FastStone Image Viewer圖像處理軟件安裝步驟(百度網盤鏈接)

軟件簡介&#xff1a;一款小巧便捷的添加水印、特效、圖片處理軟件&#xff0c;讓使用者可以通過它的操作界面來瀏覽圖片&#xff0c;且還支持了幻燈播放的功能&#xff0c;讓使用者能夠輕松的瀏覽目錄中的所有圖片。 網盤鏈接&#xff1a;https://pan.baidu.com/s/1Zvrx7fXwb6…

【新春特輯】2025年1月科技浪潮中的AI最新時事與科技趨勢

2025年1月科技浪潮中的AI最新時事與科技趨勢 一、AI科技時事 人工智能代理&#xff08;AI Agent&#xff09;的發展 最新進展&#xff1a;人工智能代理正逐步成為科技領域的新熱點。這些代理能夠自主執行特定任務&#xff0c;如管理日程、回復郵件等。然而&#xff0c;它們仍…

vue-有關于TS與路由器

title: vue(TS)路由器 date: 2025-01-28 12:00:00 tags:- 前端 categories:- 前端Vue3-第二部分 這里是代碼中出現TS的&#xff0c;后面是路由器 現在先上代碼&#xff0c;步步分析。 eg1-props的使用 步步分析代碼&#xff08;先理解&#xff0c;再實踐&#xff09; 框架…

mysql.sock.lock 導致mysql重啟失敗

背景 今天公司物業斷電&#xff0c;導致機房服務器停電宕機&#xff0c;所有的服務都得重啟。本著mysql實例都做了服務自啟動&#xff0c;所以沒有太擔心影響開發的日常工作。但是今天一上班開發就找來&#xff0c;各種服務都沒起來有問題&#xff0c;數據庫連不上。馬上登陸數…

git困擾的問題

.gitignore中添加的某個忽略文件并不生效 把某些目錄或文件加入忽略規則&#xff0c;按照上述方法定義后發現并未生效&#xff0c; gitignore只能忽略那些原來沒有被追蹤的文件&#xff0c;如果某些文件已經被納入了版本管理中&#xff0c;則修改.gitignore是無效的。 解決方…

【hot100】刷題記錄(7)-除自身數組以外的乘積

題目描述&#xff1a; 給你一個整數數組 nums&#xff0c;返回 數組 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘積 。 題目數據 保證 數組 nums之中任意元素的全部前綴元素和后綴的乘積都在 32 位 整數范圍內。 請 不要使用除法&#x…

1-2 飛機大戰游戲場景

前言&#xff1a; 根據前面的項目框架&#xff0c;搭建游戲的運行場景...... 1.0 框架預覽 基于該框架首先實現游戲的運行場景 2.0 圖片文件 創建圖片文件&#xff0c;本次項目使用easyx作為圖形庫文件&#xff0c;在easyx中想要顯示圖片&#xff0c;需要有一張圖片和圖片的掩碼…

進程通訊——類型和發展

進程常用交互方法如上

JavaScript系列(49)--游戲引擎實現詳解

JavaScript游戲引擎實現詳解 &#x1f3ae; 今天&#xff0c;讓我們深入探討JavaScript的游戲引擎實現。游戲引擎是一個復雜的系統&#xff0c;它需要處理渲染、物理、音頻、輸入等多個方面&#xff0c;讓我們一步步實現一個基礎但功能完整的游戲引擎。 游戲引擎基礎概念 &am…

安裝zsh并美化

0 Zsh 是一種功能強大的 shell&#xff0c;通常用于替代默認的 Bash shell。它為命令行提供了更多的功能&#xff0c;例如自動補全、強大的模式匹配和主題支持等。 Oh My Zsh 是用于管理 Zsh 配置的框架。 powerlevel10k是樣式&#xff0c;通過p10k configure腳本可以調節自己…

GMSL 明星產品之 MAX96717

在上一篇文章中&#xff0c;我們詳細介紹了車載市場中爆火的 GMSL 到底是個啥 &#xff1a; 揭開 GMSL 的面紗&#xff1a;自動駕駛背后的隱藏技術。今天我們就來詳細了解下如今在攝像頭側超級火爆的加串器&#xff1a;MAX96717。 MAX96717 系列有三款產品&#xff1a; MAX967…

線段樹 算法

文章目錄 基礎知識適用場景小結 題目概述題目詳解300.最長遞增子序列2407.最長遞增子序列 II 基礎知識 線段樹和樹狀數組都只是一個工具來的&#xff0c;題目并不會一下子就告訴你這個題目用到線段樹和樹狀數組&#xff0c;這個取決于你想使用的數據結構以及所要優化的方向 線…

MATLAB提供的顏色映射表colormap——偽彩色

圖像處理領域的一個習慣&#xff1a;不是真實的顏色&#xff0c;一般用偽彩色。一是說明不是物體本身的顏色&#xff0c;二是彩色更容易分辨。 MATLAB陸續提供了16種顏色映射表colormap。 之前的都很丑&#xff0c;近5年新增的4種還可以。總的說來還是丑。 這是一種鳥的名字。…

20.Word:小謝-病毒知識的科普文章?【38】

目錄 題目? NO1.2.3文檔格式 NO4.5 NO6.7目錄/圖表目錄/書目 NO8.9.10 NO11索引 NO12.13.14 每一步操作完&#xff0c;確定之后記得保存最后所有操作完記得再次刪除空行 題目 NO1.2.3文檔格式 樣式的應用 選中應用段落段落→開始→選擇→→檢查→應用一個一個應用ctr…