原创 JWT+SpringSecurity實現基於Token的單點登錄(二):認證和授權

前言 本章是基於上一章“JWT+SpringSecurity實現基於Token的單點登錄(一):前期準備”的基礎上進行開發的,如果前期準備還沒有做好的,可點擊鏈接至上一章。 代碼地址:gitee 一、JWT工具類 這裏我們使用jjwt

原创 Spring Data JPA —— Audit 使用審計功能(附enum和jsonb如何映射到數據庫)

Spring Data JPA 提供了Audit審計功能,用來記錄創建時間、創建人、修改時間、修改人等,對應的註解爲@CreateDate、@CreatedBy、@LastModifiedDate、@LastModifiedBy。下面來

原创 單元測試之EmbeddedPostgres

當我們做DAO層測試時,一般都是做單元測試,而不是像集成測試那樣把項目運行起來。本章就是基於Postgres來講講如何做DAO層的單元測試。 一、DBUtility 單元測試因爲不能運行項目,所以我們需要自己實現一個嵌入式的數據庫的運

原创 單元測試之Activiti(基於EmbeddedPostgres去加載Activiti核心類)

本文將基於EmbeddedPostgres去加載Activiti核心類,從而進行有關Activiti的Unit Test。有關EmbeddedPostgres的內容見上一篇文章:單元測試之EmbeddedPostgres 1、Acti

原创 算法溫習——手撕快速排序

1、快速排序介紹 坐在馬桶上看算法:快速排序 2、Java實現(個人實現。。) import org.junit.Test; public class QuickSortTest { public void quickSor

原创 OAuth2.0入門(二)—— spring-security-oauth2入門例子JDBC存儲(超詳細版)下篇

上一篇文章:OAuth2.0入門(二)—— spring-security-oauth2入門例子JDBC存儲(超詳細版)上篇 本文我們繼續上一篇文章的內容來講解下oauth2-resource-server模塊和oauth-client

原创 OAuth2.0入門(二)—— spring-security-oauth2入門例子JDBC存儲(超詳細版)上篇

前言:本文是OAuth2.0實踐篇,閱讀之前需要先掌握OAuth2.0基本原理,原理介紹見:OAuth2.0入門(一)—— 基本概念詳解和圖文並茂講解四種授權類型             本章將採用微服務架構方式,將OAuth2-Dem

原创 Antlr4入門(一)IDEA中Antlr的安裝與使用

Antlr (ANother Tool for Language Recognition) 是一款強大的語法分析器生成工具,可用於讀取、處理、執行和翻譯結構化的文本或者二進制文件。它被廣泛應用於學術領域和工業生產實踐,是衆多語言、工具和

原创 OAuth2.0入門(一)—— 基本概念詳解和圖文並茂講解四種授權類型

       OAuth全稱爲Open Authorization(開放授權)。OAuth協議爲用戶資源的授權提供了一個安全的、開放而又簡易的標準。與以往的授權方式不同之處是OAuth的授權不會使第三方觸及到用戶的帳號信息(如用戶名與密

原创 Antlr4入門(二)基本概念解析

在上一章中(Antlr4入門(一)IDEA中Antlr的安裝與使用),我們安裝了Antlr,並編寫運行了第一個程序“Hello world”。而在本章中,我們將學習語言類應用程序相關的重要過程、術語和數據結構。 一. 術語 語言(la

原创 Antlr4入門(四)監聽器、訪問器與語法分析樹的標註

ANTLR的運行庫提供了兩種遍歷樹的機制:語法分析樹監聽器與訪問器。通過它們,我們可以在遍歷樹的時候實現相應邏輯。在本章中,我們將通過編寫一個簡單的計算器來探究三種在事件方法中共享信息的途徑。 一、計算器語法文件 按照上一章“Antl

原创 Antlr4入門(六)實戰之JSON

本章中,我們將學習編寫JSON語法文件,即如何通過閱讀參考手冊、樣例代碼和已有的非ANTLR語法來構造完整的語法。接着我們將使用監聽器或訪問器來將JSON格式轉成XML。 注:JSON是一種存儲鍵值對的數據結構,由於值本身也可以作爲鍵值

原创 Spring Security 認證流程詳解

1、認證流程說明 Spring Security實際上是通過一組過濾器鏈來對請求進行攔截操作的,如下圖所示:        其中UsernamePasswordAuthenticationFilter和BasicAuthenticati

原创 Antlr4入門(五)實戰之CSV

在前面的章節中,我們已經學習瞭如何編寫語法文件和使用監聽器和訪問器來實現具體的動作。現在,是時候使用這些知識來構造真實世界的語法了。在本章中,我們將從最簡單的CSV(comma-separated-value)格式開始,學習如何通過閱讀

原创 Openshift入門:基本概念解析

1、Project 和 Namespace        在 Kubernetes 中使用命名空間(Namespace)的概念來分隔資源 。 在同一個命名空間中,某一個對象的名稱在其分類中必須是唯一的,但是分佈在不同命名空間中的對象則可以