原创 算法~利用zset實現滑動窗口限流

滑動窗口限流 滑動窗口限流是一種常用的限流算法,通過維護一個固定大小的窗口,在單位時間內允許通過的請求次數不超過設定的閾值。具體來說,滑動窗口限流算法通常包括以下幾個步驟: 初始化:設置窗口大小、請求次數閾值和時間間隔。 維護窗口:將請求

原创 springboot~AutoConfigureAfter如何控制Bean的注入順序

這個文章主要介紹一下@AutoConfigureAfter在spring框架中的作用,在使用過程中,很多開發人員在使用它的時候都出現了問題,問題比較多的就是它們的註冊順序總不是我們預期的,下面介紹一下正常的使用方法。 @AutoConfi

原创 java~graalVM虛擬機

GraalVM GraalVM 是一種高性能、通用的虛擬機,由 Oracle 公司開發。它支持多種編程語言(如 Java、JavaScript、Python 等),並提供了即時編譯器、AOT 編譯器等功能。GraalVM 的主要特點包括:

原创 google瀏覽器插件開發

項目結構 在開發Chrome插件時,以下幾個文件的作用如下: manifest.json:這是Chrome插件的清單文件,用於配置插件的基本信息、權限、頁面跳轉等。其中包括插件的名稱、版本號、圖標、後臺腳本、瀏覽器動作等信息。 ba

原创 springboot~redis的hash結構爲key設置過期策略

redis配置文件開啓鍵過期 # The "notify-keyspace-events" takes as argument a string that is composed # of zero or multiple charac

原创 keycloak~RequiredActionProvider中獲取表單認證前URL的參數

在keycloak中,我們在進行brower瀏覽器的表單認證時,一般在跳到本頁面時,URL上會有redirect_uri這種參數,用來告訴keycloak,在認證成功後的跳轉地址,你在表單認證控制器中,可以通過context.getHttp

原创 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的攔截器機制,將公共