博客 / 列表

張佔嶺 - springboot~傳統WEB應用開啓CSRF

CSRF 是什麼? CSRF(Cross-Site Request Forgery,跨站請求偽造) 是一種常見的Web安全漏洞。攻擊者利用受害者已經登錄的合法會話,誘使受害者執行非本意的操作。 簡單比喻: 想象你在咖啡店會員卡里有錢,你每次消費只需要説“用會員卡支付”。攻擊者偽裝成服務員,在你面前説“用會員卡轉賬100元到XXX賬户”。因為你已經在咖啡店的系統中“登錄”了(身份已認證),系統就

後端

張佔嶺 - jvm~分析gc老年代內存過高的原因

gc的老年代內存高居不下,導致最後full gc的發生,我們需要通過分析gc dump文件來解決biggest objects過多的問題 生成dump文件 在keycloak容器中安裝輕量級工具 microdnf install -y wget microdnf install -y procps-ng #包含ps命令 ps -aux # 找到keycloak的pid,默認是712 wget

後端

張佔嶺 - k8s~Kubernetes PDB

在Kubernetes(k8s)中,PodDisruptionBudget(PDB)是一種資源對象,用於限制在自願中斷(voluntary disruptions)期間同時終止的Pod數量,從而保障應用的可用性。以下是詳細説明: 我們為Deployment配置了PDB(PodDisruptionBudget),目的是在自願中斷(如節點維護、升級)時,保證一定數量的Pod副本可用。但是,PDB並不

kubernetes

張佔嶺 - k8s~deployment和service如何找到pod

deployment關聯到pod spec.selector.matchLabels.deployment: hello 作用: 這是選擇器(Selector),用於告訴Deployment: 識別哪些Pod屬於這個Deployment管理 它會匹配集羣中已有的Pod標籤 一個Deployment只能管理與自己selector匹配的Pod 關鍵點: 用於查找和選擇現有的Pod 決定

kubernetes

張佔嶺 - jvm~jvm配置與系統配置的關係

一 生產環境問題描述 keycloak是運行在jboss上面,並且部署到了容器裏,在k8s上面進行編排,現在遇到gc在某個時刻垃圾回收速度變慢,CPU接近100%,容器導致存活探針失敗,容器最後重啓 二 問題分析與解決方案 這是一個典型的 JVM GC 問題導致的容器重啓場景。讓我分析一下你的配置和可能的原因: 2.1 問題分析 根據你的 devops.yaml 配置:

後端

張佔嶺 - wasm~tinygo寫一個基於redis的全侷限流的插件

Global Limit 插件 插件功能 基於白名單的全侷限流插件,對指定的域名和URL路徑進行全侷限流控制,共享同一個限流計數器。 核心特性 按域名 + URL路徑進行全侷限流 使用 Redis Sorted Set 實現滑動時間窗口 白名單機制:只對配置的域名和路徑進行限流 支持正則表達式匹配URL路徑 實現邏輯 1. 請求處理流程 請求到達 → 檢查域名白名單 → 檢查路徑白名單

後端

張佔嶺 - 大語言模型~Ollama本地模型和java一起體驗LLM

説明 用户輸入多個“信息” 大語言模型將“信息”進行處理,轉成數組;(一維張量,向量) 通過餘弦相似度等相關算法,計算兩個向量是否相似 Ollama接口步驟 安裝 Ollama: https://ollama.ai/ 下載模型: ollama pull nomic-embed-text Ollama 默認運行在 http://localhost:11434 推薦的嵌入模型:

AI

張佔嶺 - springboot~通過集成測試來理解Accept和Content-Type

🎯 核心區別 Content-Type:告訴服務器我發送的數據是什麼格式 Accept:告訴服務器我希望接收什麼格式的響應數據 📋 詳細説明 1. Content-Type (內容類型) 作用:描述請求體的格式 使用場景:當你的請求有請求體時(如POST、PUT請求) 示例:Content-Type: application/json 表示"我發送的是JSON格式的數據" /

後端

張佔嶺 - 子網掩碼基礎知識

子網掩碼基礎知識 子網掩碼由連續的1和連續的0組成,1表示網絡位,0表示主機位。 1. 基礎概念 IPv4地址:由32位二進制組成,通常表示為4個十進制數(如192.168.1.0)。 子網掩碼:用於劃分網絡和主機部分。例如,255.255.255.0(即/24)表示前24位為網絡號,後8位為主機號。 2. 地址數量計算 公式: 可用主機地址數 = (2^{(32

網絡安全

張佔嶺 - apisix~redirect重定向插件

基本功能 將某個長鏈接,使用一個域名代替它,在瀏覽器上輸入域名,可以直接重定向到這個鏈接對接的網絡 使用方法 { "uri": "/*", "name": "short", "methods": [ "GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS", "C

opensource

張佔嶺 - k8s~根據podIP查看pod信息

在 Kubernetes 集羣中查找與特定 Pod IP(如 10.10.5.7)關聯的服務,可以通過以下步驟操作: 方法 1:通過 Endpoints 查詢(推薦) kubectl get endpoints --all-namespaces -o json | \ jq -r '.items[] | select(.subsets[].addresses[].ip == "10.10.5.7"

kubernetes

張佔嶺 - redis~多行語句的原子性_事務性

高併發下 Redis 事務的原子性分析 1. 代碼結構分析 redisTemplate.execute(new SessionCallbackObject() { @Override public String, Long Object execute(RedisOperationsString, Long operations) { operations.mult

nosql

張佔嶺 - mcp~客户端與服務端的通訊技術

mcp通訊協議 stdio sse streamable http JSON_RPC MCP 的傳輸層負責將 MCP 協議消息轉換為 JSON-RPC 格式進行傳輸,並將接收到的 JSON-RPC 消息轉換回 MCP 協議消息 請求 { jsonrpc: "2.0", id: number | string, method: string, params?: obj

AI , mcp

張佔嶺 - keycloak~關於跨域的iframe對接keycloak的分析

幾個cookie下面元素 AUTH_SESSION_ID 會話級的session_state AUTH_SESSION_ID_LEGACY 在http中可見的AUTH_SESSION_ID KEYCLOAK_SESSION 帶有效期的session_state KEYCLOAK_SESSION_LEGACY 在http中可見的KEYCLOAK_SESSION KEYCLOAK_IDEN

後端

張佔嶺 - keycloak~登录时将请求头里某个属性放入UserSessionModel

UserSessionModel做為用户登錄過程中的一個會話,可以用來跨flow使用數據,這些數據被保存到內存裏,在認證過程中可以被使用,今天的一個需求要求在登錄時從請求頭獲取IP所在地並寫到kafka裏,要想實現這個需求,你可以在現有認證流程中修改代碼,但不建議這樣做,因為這種修改對原始邏輯會有破壞,keycloak提供了自定義認證流,並在後台可以靈活的配置。 相關keycloak中的知識 認

后端