openfeignFeign 客戶端禁用 SSL

要針對特定的 Feign 客戶端禁用 SSL 驗證,可以通過自定義配置類實現。以下是完整解決方案:

1. 創建自定義配置類(禁用 SSL 驗證)

import feign.Client;
import feign.httpclient.ApacheHttpClient;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import org.apache.http.ssl.SSLContexts;
import org.springframework.context.annotation.Bean;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;public class DisableSslConfig {@Beanpublic Client feignClient() throws Exception {// 創建信任所有證書的SSL上下文SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(null, new TrustSelfSignedStrategy()).build();// 創建自定義Socket工廠SSLSocketFactory socketFactory = sslContext.getSocketFactory();// 構建禁用SSL驗證的HttpClientreturn new ApacheHttpClient(org.apache.http.impl.client.HttpClients.custom().setSSLContext(sslContext).setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE).build());}
}

2. 應用到特定 Feign 客戶端

@FeignClient 注解中引用自定義配置:

import org.springframework.cloud.openfeign.FeignClient;@FeignClient(name = "your-service",url = "https://your-service-url",configuration = DisableSslConfig.class // 應用自定義配置
)
public interface YourServiceClient {// 你的Feign接口方法@GetMapping("/endpoint")String getData();
}

3. 補充說明(重要)

安全警告

?? 此配置會完全禁用 SSL 驗證

  • 允許中間人攻擊(MITM)
  • 暴露敏感數據風險
  • 僅限開發/測試環境使用
  • 生產環境必須使用有效證書
備選方案(推薦)

如果只是需要信任自簽名證書,更安全的方式是將證書添加到信任庫:

keytool -import -alias mycert -file server.crt -keystore truststore.jks

然后在 application.yml 配置:

server:ssl:trust-store: classpath:truststore.jkstrust-store-password: changeit

4. 全局禁用方式(不推薦)

如果確實需要全局禁用(所有 Feign 客戶端),在 application.yml 添加:

feign:client:config:default: # 作用于所有客戶端disable-ssl-validation: truehttpclient:disable-ssl-validation: true # 確保HTTP客戶端生效

驗證是否生效

在日志中添加檢查:

@Bean
public Client feignClient() throws Exception {log.warn("?? SSL驗證已禁用 - 僅限測試環境使用!");// ... 同上 ...
}

關鍵點總結

方法作用范圍推薦指數安全風險
自定義配置類單個客戶端★★★★
信任庫配置全局★★★★★
全局禁用SSL所有客戶端★☆☆☆☆極高

最佳實踐:優先使用信任庫方案,僅在測試環境針對特定服務使用自定義配置類方案。生產環境務必保持 SSL 驗證開啟。

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

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

相關文章

移動端 UI自動化測試學習之Appium框架(包含adb調試工具介紹)

文章目錄 前言adb調試工具adb組成常用命令獲取程序的包名和界面名文件傳輸發送文件到手機從手機中拉取文件 獲取app啟動時間獲取手機日志其他命令 Appium 簡介工作原理圖 環境搭建安裝客戶端庫(appium lib)安裝Appium Server安裝JDK(自行下載…

【論文解讀】DETR: 用Transformer實現真正的End2End目標檢測

1st authors: About me - Nicolas Carion?Francisco Massa? - ?Google Scholar? paper: [2005.12872] End-to-End Object Detection with Transformers ECCV 2020 code: facebookresearch/detr: End-to-End Object Detection with Transformers 1. 背景 目標檢測&#…

性能測試-jmeter實戰1

課程:B站大學 記錄軟件測試-性能測試學習歷程、掌握前端性能測試、后端性能測試、服務端性能測試的你才是一個專業的軟件測試工程師 性能測試-jmeter實戰1 為什么需要性能測試呢?性能測試的作用?性能測試體系性能測試基礎性能測試工具性能監控…

HTML、XML、JSON 是什么?有什么區別?又是做什么的?

在學習前端開發或者理解互聯網工作原理的過程中,我們經常會遇到三個非常重要的概念:HTML、XML 和 JSON。它們看起來有點像,但其實干的事情完全不同。 🏁 一、他們是誰?什么時候誕生的? 名稱全稱誕生時間誰…

HTML5 全面知識點總結

一、HTML 基礎概念 HTML:超文本標記語言,用于創建網頁和 Web 應用的結構。 超文本:可以包含文字、圖片、音頻、視頻、鏈接等多種媒體。 標記語言:通過標簽標記網頁的各個部分。 二、HTML5 的新特性(區別于 HTML4&am…

記錄一個難崩的bug

1.后端配置了 Filter 過濾器,如果再配置了Configuration ,那么會出現沖突嗎? 過濾器與Configuration類本身無直接沖突,但需注意注冊機制、執行順序和依賴管理。通過顯式控制過濾器的注冊方式和優先級,結合Spring Security的鏈式配…

RabbitMQ 與其他 MQ 的對比分析:Kafka/RocketMQ 選型指南(二)

四、三者性能大比拼 4.1 吞吐量 吞吐量是衡量消息隊列處理能力的重要指標,它反映了在單位時間內消息隊列能夠處理的消息數量。在這方面,Kafka 表現最為出色,其獨特的設計使其能夠輕松處理每秒數百萬條消息 。Kafka 采用分布式架構和分區機制…

【C】箭頭運算符

在C語言中,p_tone->power_off 是一種通過指針訪問結構體成員的方法,稱為箭頭運算符(->)。它主要用于以下場景: 1. 語法解釋 p_tone:是一個指向結構體(或聯合體)的指針。powe…

【Unity】 HTFramework框架(六十六)缺省的運行時組件檢視器

更新日期:2025年5月29日。 Github 倉庫:https://github.com/SaiTingHu/HTFramework Gitee 倉庫:https://gitee.com/SaiTingHu/HTFramework 索引 一、缺省的運行時組件檢視器1.自定義運行時組件檢視器 二、使用缺省的運行時組件檢視器1.定義組…

AI和大數據:是工具,還是操控人心的“隱形之手”?

AI和大數據:是工具,還是操控人心的“隱形之手”? 開場白:聊點現實的 在這個數據至上的時代,我們的生活被AI和大數據悄然改變。從電商推薦、短視頻算法,到招聘篩選、智慧城市,它們像一個貼心的…

k8s部署ELK補充篇:kubernetes-event-exporter收集Kubernetes集群中的事件

k8s部署ELK補充篇:kubernetes-event-exporter收集Kubernetes集群中的事件 文章目錄 k8s部署ELK補充篇:kubernetes-event-exporter收集Kubernetes集群中的事件一、kubernetes-event-exporter簡介二、kubernetes-event-exporter實戰部署1. 創建Namespace&a…

Apache 高級配置實戰:從連接保持到日志分析的完整指南

Apache 高級配置實戰:從連接保持到日志分析的完整指南 前言 最近在深入學習 Apache 服務器配置時,發現很多朋友對 Apache 的高級功能還不夠了解。作為一個在運維路上摸爬滾打的技術人,我想把這些實用的配置技巧分享給大家。今天這篇文章會帶…

【Stable Diffusion 1.5 】在 Unet 中每個 Cross Attention 塊中的張量變化過程

系列文章目錄 文章目錄 系列文章目錄前言特征圖和注意力圖的尺寸差異原因在Break-a-Scene中的具體實現總結 前言 特征圖 (Latent) 尺寸和注意力圖(attention map)尺寸在擴散模型中有差異,是由于模型架構和注意力機制的特性決定的。 特征圖和注意力圖的尺寸差異原…

【監控】Prometheus+Grafana 構建可視化監控

在云原生和微服務架構盛行的今天,監控系統已成為保障業務穩定性的核心基礎設施。作為監控領域的標桿工具,Prometheus和Grafana憑借其高效的數據采集、靈活的可視化能力,成為運維和開發團隊的“標配”。 一、Prometheus Prometheus誕生于2012…

替代 WPS 的新思路?快速將 Word 轉為圖片 PDF

在這個數字化辦公日益普及的時代,越來越多的人開始關注文檔處理工具的功能與體驗。當我們習慣了某些便捷操作時,卻發現一些常用功能正逐漸變為付費項目——比如 WPS 中的一項實用功能也開始收費了。 這款工具最特別的地方在于,可以直接把 W…

CodeTop之數組中的第K個最大的元素

題目鏈接 215. 數組中的第K個最大元素 - 力扣(LeetCode) 題目解析 算法原理 解法一: 直接理由java內部的排序函數,Arrays.sort()進行排序, 然后我們直接返回第k個最大的元素 nums[nums.length-k] 解法二: 使用堆 我們先把所有元素丟到大根堆里面…

AI任務相關解決方案1-基于NLP的3種模型實現實體識別,以及對比分析(包括基于規則的方法、CRF模型和BERT微調模型)

大家好,我是微學AI,今天給大家介紹一下AI任務相關解決方案1-基于NLP的3種模型實現實體識別,以及對比分析。本文將深入探討三種不同的命名實體識別(NER)方法,包括基于規則的方法、CRF模型和BERT微調模型,用于識別文本中的地名(LOC)、機構名稱(ORG)和人名(PER)實體。通過系統…

IP動態偽裝開關

IP動態偽裝開關 在OpenWrt系統中,IP動態偽裝(IP Masquerading)是一種網絡地址轉換(NAT)技術,用于在私有網絡和公共網絡之間轉換IP地址。它通常用于允許多個設備共享單個公共IP地址訪問互聯網。以下是關于O…

【MySQL】第10節|MySQL全局優化與Mysql 8.0新增特性詳解

全局優化 mysql server參數 1. max_connections(最大連接數) 含義:MySQL 服務允許的最大并發連接數(包括正在使用和空閑的連接)。超過此限制時,新連接會被拒絕(報錯 Too many connections&am…

VS Code 插件 Git History Diff

插件名 進命令行,進Git自己那個分支 查看分支 提交到Git的后想再把另一個也提交到那個分支,用這個命令