原创 springboot~mybatis-plus中使用TypeHandler做類型映射

mybatis-plus中,如果數據表字段類型與java實體字段類型不一樣,這時就需要做類型映射與轉換了,我們一般可以實現TypeHandler接口,或者繼承抽象類BaseTypeHandler,我們下面舉例來說明一下它的使用方法。 場景

原创 keycloak~使用jwks驗證token的合法性

keycloak提供了jwks服務,其地址可以在/auth/realms/fabao/.well-known/openid-configuration的返回結果中找到,jwks_uri它表示了公鑰的頒發者,可以使用頒發出來的公鑰來驗證tok

原创 keycloak~jwks-rsa中使用的設計模式

com.auth0.jwk組織下面的jwks-rsa包,主要實現的是通過公鑰對jwt的簽名進行驗證,在這個包中,它使用了包裝器的設計模式,對默認的jwks提供者添加了一緩存的支持,通過建立一個GuavaCachedJwkProvider類,

原创 keycloak~jwt的rs256簽名的驗證方式

接口地址 keycloak開放接口地址:/auth/realms/fabao/.well-known/openid-configuration rsa算法相關術語 RSA算法是一種非對稱加密算法,其安全性基於大整數分解的困難性。在RS

原创 mysql~GROUP_CONCAT實現關係表的行轉列

作用 GROUP_CONCAT 是 MySQL 中用於將查詢結果集中的多行數據合併爲單個字符串的聚合函數。它將每行數據的指定字段值連接起來,並以指定的分隔符分隔,最終返回一個包含所有值的字符串。 以下是 GROUP_CONCAT 函數的一般

原创 k8s~pod單副本的平滑部署

如果你的服務器資源緊張,pod可能只能是單副本了,這時在進行平滑的滾動部署時,應該如何配置呢?總不能在部署期間503吧,這是不能接受的! maxUnavailable來配置不可用數量 我們可以在spec.strategy.strategy.

原创 keycloak~對框架中提供的Provider總結

提供者目錄 Provider Authenticator BaseDirectGrantAuthenticator AbstractFormAuthenticator AbstractUsernameFormAuthenticator

原创 keycloak~RequiredActionProvider的使用

使用場景 RequiredActionProvider,它是在認證過程中,需要當前登錄的用戶執行個性化的動作;當用戶符合條件,就被執行RequiredActionProvider對作,當RequiredActionProvider沒有正常提

原创 springboot~mybatis統一處理公有字段

對於實體中包含有公共字段,像create_at,create_time,update_at,update_time來說,我們沒有必要在每個實體的crud操作中複製同樣的代碼,這樣代碼的味道很壞,我們應該使用mybatis的攔截器機制,將公共

原创 keycloak~網站對接到Keycloak的步驟

新網站對接到KC的部署 kc的環境 向kc申請自己的客戶端 kc的登錄接口 通過code換token接口 刷新token接口 kc的用戶信息接口 kc的jwt token說明 1. kc的環境 測試環境:https://test-kc.

原创 go~istio加載wasm的步驟

參考 https://github.com/higress-group/proxy-wasm-go-sdk/tree/main/proxywasm https://github.com/tetratelabs/proxy-wasm-go-

原创 go~在阿里mse上使用redis.call

相關依賴 github.com/higress-group/proxy-wasm-go-sdk github.com/alibaba/higress/plugins/wasm-go 標準的redis 下面是一個讀取redis指定key的

原创 go~連接redis的方法

在Go語言中使用Redis,通常需要使用第三方庫來實現與Redis服務器的交互。目前比較流行的Go語言Redis客戶端庫有go-redis和redigo等。這裏以go-redis爲例,簡單介紹如何在Go語言中使用Redis。 使用go-re

原创 keycloak~在認證的action中自定義重定向地址

場景與實現邏輯 我的登錄接口,在輸入賬號密碼成功後進行中間頁 中間頁可以通過添加Authenticator的實現類來寫邏輯 authenticate方法是渲染頁面的,action方法是提交表單後的邏輯 context.success()方

原创 go~wasm插件的開發

Go和TinyGo是兩種不同的Go語言編譯器,它們之間有以下幾點區別: 目標平臺: Go:Go語言編譯器主要面向通用計算機平臺,如Windows、Linux、macOS等。 TinyGo:TinyGo專注於支持嵌入式系統和物聯網設備等