Feign忽略Https的SSL最佳方案(且保证负载均衡将失效)
- 同时解决Https的SSL证书验证问题和feign不支持Patch请求方法的问题
代码 1. 工具类 OkHttpUtils.java
import javax.net.ssl.*;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.security.cert.X509Certificate;/*** @author Vania*/
public class OkHttpUtils {/*** X509TrustManager instance which ignored SSL certification*/public static final X509TrustManager IGNORE_SSL_TRUST_MANAGER_X509 = new X509TrustManager() {@Overridepublic void checkClientTrusted(X509Certificate[] chain, String authType) {}@Overridepublic void checkServerTrusted(X509Certificate[] chain, String authType) {}@Overridepublic X509Certificate[] getAcceptedIssuers() {return new X509Certificate[]{};}};/*** Get initialized SSLContext instance which ignored SSL certification** @return* @throws NoSuchAlgorithmException* @throws KeyManagementException*/public static SSLContext getIgnoreInitedSslContext() throws NoSuchAlgorithmException, KeyManagementException {SSLContext sslContext = SSLContext.getInstance("SSL");sslContext.init(null, new TrustManager[]{IGNORE_SSL_TRUST_MANAGER_X509}, new SecureRandom());return sslContext;}/*** Get HostnameVerifier which ignored SSL certification** @return*/public static HostnameVerifier getIgnoreSslHostnameVerifier() {return new HostnameVerifier() {@Overridepublic boolean verify(String arg0, SSLSession arg1) {return true;}};}
}
代码 2. 工具类 FeignConfiguration.java
import feign.Client;
import feign.okhttp.OkHttpClient;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.netflix.ribbon.SpringClientFactory;
import org.springframework.cloud.openfeign.ribbon.CachingSpringLoadBalancerFactory;
import org.springframework.cloud.openfeign.ribbon.LoadBalancerFeignClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;@Slf4j
@Configuration
public class FeignConfiguration {/*** 解决 feign client 中https不安全的问题** @param cachingFactory* @param clientFactory* @return*/@Beanpublic Client feignClient(CachingSpringLoadBalancerFactory cachingFactory, SpringClientFactory clientFactory) throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException {// 此处必须为 new LoadBalancerFeignClient 否则负载均衡将失效(现象:消费者无法从注册中心获取服务提供者的ip)// 这个只能解决忽略https证书验证// return new LoadBalancerFeignClient(new Client.Default(SSLContexts.custom().loadTrustMaterial(null, new TrustSelfSignedStrategy()).build().getSocketFactory(), new NoopHostnameVerifier()),// cachingFactory, clientFactory);// 使用okhttp 解决证书验证 和 Patch请求方法不支持的问题return new LoadBalancerFeignClient(new OkHttpClient(new okhttp3.OkHttpClient().newBuilder().sslSocketFactory(OkHttpUtils.getIgnoreInitedSslContext().getSocketFactory(), OkHttpUtils.IGNORE_SSL_TRUST_MANAGER_X509).hostnameVerifier(OkHttpUtils.getIgnoreSslHostnameVerifier()).build()),cachingFactory, clientFactory);}
}
相关文章:
Feign忽略Https的SSL最佳方案(且保证负载均衡将失效)
同时解决Https的SSL证书验证问题和feign不支持Patch请求方法的问题 代码 1. 工具类 OkHttpUtils.java import javax.net.ssl.*; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import j…...
Neo4j之SET基础
在 Neo4j 中,SET 语句用于更新节点或关系的属性。它允许你修改节点或关系的属性值,可以单独使用,也可以与其他查询语句(如 MATCH、CREATE、MERGE 等)一起使用。以下是一些使用 SET 语句的常见例子,以及它们…...
Redis 缓存过期及删除
一、Redis缓存过期策略 物理内存达到上限后,像磁盘空间申请虚拟内存(硬盘与内存的swap),甚至崩溃。 内存与硬盘交换 (swap) 虚拟内存,频繁I0 性能急剧下降,会造成redis内存急剧下降; 一般设置物理内存的3/4,在redis…...
万字长文·通俗易懂·一篇包掌握——输入/输出·文件操作(c语言超详细系列)(二)
前言:Hello,大家好😘,我是心跳sy,上一节我们主要学习了格式化输入输出的基本内容,这一节我们对格式化进行更加深入的了解,对文件概念进行介绍,并且对输入、输出与文件读写的基本概念…...
【左神算法刷题班】第17节:在有序二维数组中查找目标值、等于目标字符串的子序列个数
第17节 题目1:在有序二维数组中查找目标值 给定一个每一行有序、每一列也有序,整体可能无序的二维数组 再给定一个数num, 返回二维数组中有没有num这个数 例子 数组如下,找 6 是否存在。 1 3 5 7 2 4 6 13 3 9 14 …...
【Terraform学习】本地变量(Terraform配置语言学习)
背景: 关于如何在机器上拉terraform代码,初始化就不重复了,需要的可以查看前面的文章: 【Terraform学习】Terraform-AWS部署快速入门(快速入门)_向往风的男子的博客-CSDN博客 使用本地变量命名资源 将每…...
zabbix自动注册服务器以及部署代理服务器
文章目录 Zabbix自动注册服务器及部署代理服务器一.zabbix自动注册1.什么是自动注册2.环境准备3.zabbix客户端配置4.在 Web 页面配置自动注册5.验证自动注册 二.部署 zabbix 代理服务器1.分布式监控的作用:2.环境部署3.代理服务器配置4.客户端配置5.web页面配置5.1 …...
掌握Python的X篇_32_使用python编辑pdf文件_pdfrw
本篇介绍利用python操作pdf文件,我们平时也会有合并和拆分pdf的需求,此时我们就可以使用本节内容。 文章目录 1. pdfrw的安装2. 切分pdf文件3. pdfrw官网及实现一版四面的实例 1. pdfrw的安装 pip install pdfrw官网地址:https://github.co…...
【软件工程】软件测试
软件测试的对象 软件程序文档 测试对象:各个阶段产生的源程序和文档。 软件测试的目的 基于不同的立场,对软件测试的目的存在着两种完全对立的观点。 (1)一种观点是通过测试暴露出软件中所包含的故障和缺陷(从用户的角度)…...
Android性能优化——内存优化
一、内存问题 内存抖动,锯齿状,GC导致卡顿内存泄漏,可用内存减少,频繁GC 内存溢出,OOM,程序异常 二、内存分析工具 Memory ProfilerMemory Analyzer LeakCanary Memory Profiler 实时图表展示应用内存使…...
Android Studio实现图形验证码
源代码 源代码MainActivity 效果图32行需要修改,不修改会报错:需要常量表达式,我的代码已修改 点击后 MainActivity import static com.example.graphicverificationcode.RxCaptcha.TYPE.NUMBER;import android.annotation.SuppressLint; …...
JAVA面试数据库篇
目录 一.优化 1.MYSQL中,如何定位慢查询? 2.SQL语句执行慢,如何分析呢? 3.索引 了解过索引吗?(什么是索引) 索引的底层数据结构了解过吗? B树和B树的区别是什么呢? 什么是聚…...
Android高手进阶教程(三)之----Android 中自定义View的应用.
大家好我们今天的教程是在Android 教程中自定义View 的学习,对于初学着来说,他们习惯了Android 传统的页面布局方式,如下代码: <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"htt…...
第一百一十三回 dart中的getter/setter方法
文章目录 概念介绍使用方法示例代码使用扩展 我们在上一章回中介绍了 flutter_screenutil包相关的内容,本章回中将介绍 dart中的setter/getter方法.闲话休提,让我们一起Talk Flutter吧。 概念介绍 我们在这里介绍的setter/getter方法属于编程语言中的…...
搭建Docker环境
目录 一、docker环境搭建 1、卸载旧版本docker 2、安装依赖和设置仓库 3、安装docker 4、启动并加入开机启动 5、验证是否安装成功 二、利用docker搭建nginx 1、拉取镜像 2、启动容器,部署nginx 一、docker环境搭建 1、卸载旧版本docker yum remove docke…...
微服务08-多级缓存
1.什么是多级缓存 传统的缓存策略一般是请求到达Tomcat后,先查询Redis,如果未命中则查询数据库,如图: 存在下面的问题: •请求要经过Tomcat处理,Tomcat的性能成为整个系统的瓶颈 •Redis缓存失效时,会对数据库产生冲击 多级缓存就是充分利用请求处理的每个环节,分…...
Intel汇编和ATT汇编的区别?
一、前缀不同 在 Intel 语法中,没有寄存器前缀或立即前缀。 然而,在 AT&T 中,寄存器的前缀是“%”,而 immed 的前缀是“$”。 Intel 语法十六进制或二进制即时数据分别带有“h”和“b”后缀。 此外,如果第一个十六…...
MongoDB 备份与恢复
1.1 MongoDB的常用命令 mongoexport / mongoimport mongodump / mongorestore 有以上两组命令在备份与恢复中进行使用。 1.1.1 导出工具mongoexport Mongodb中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件。可以通过参数指定导出的数据项,…...
探讨uniapp的网络通信问题
uni-app 中有很多原生的 API,其中我们经常会用到的肯定有:uni.request(OBJECT) method 有效值 注意:method有效值必须大写,每个平台支持的method有效值不同,详细见下表。 success 返回参数说明 data 数据说明 最终…...
【左神算法刷题班】第18节:汉诺塔问题、岛屿问题、最大路径和问题
第18节 题目1:汉诺塔问题(变体) 体系学习班18节有讲暴力递归的汉诺塔原题。 给定一个数组arr,长度为N,arr中的值只有1,2,3三种 arr[i] 1,代表汉诺塔问题中,从上往下第…...
如何高效管理多平台网盘文件:LinkSwift直链获取工具深度解析
如何高效管理多平台网盘文件:LinkSwift直链获取工具深度解析 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 …...
EdB Prepare Carefully完整教程:3步打造完美RimWorld开局体验
EdB Prepare Carefully完整教程:3步打造完美RimWorld开局体验 【免费下载链接】EdBPrepareCarefully EdB Prepare Carefully, a RimWorld mod 项目地址: https://gitcode.com/gh_mirrors/ed/EdBPrepareCarefully 还在为RimWorld随机生成的"废柴"殖…...
Wan2.2-TI2V-5B:消费级GPU上的720P视频生成革命
Wan2.2-TI2V-5B:消费级GPU上的720P视频生成革命 【免费下载链接】Wan2.2-TI2V-5B Wan2.2-TI2V-5B是一款开源的先进视频生成模型,基于创新的混合专家架构(MoE)设计,显著提升了视频生成的质量与效率。该模型支持文本生成…...
OpenClaw备份策略:保障SecGPT-14B自动化任务不间断运行
OpenClaw备份策略:保障SecGPT-14B自动化任务不间断运行 1. 为什么需要备份策略? 去年冬天的一个深夜,我的OpenClaw自动化任务突然崩溃了。当时正在执行一个关键的网络安全日志分析任务,SecGPT-14B模型已经连续工作了6个小时&…...
避坑指南:在Luckfox Pico上配置Qt Creator交叉编译环境(RV1106 SDK)
Luckfox Pico RV1106 Qt Creator交叉编译环境配置实战 作为一名长期深耕嵌入式Qt开发的工程师,我深知在资源受限的RV1106平台上搭建高效开发环境的痛点。本文将分享如何在Ubuntu 22.04系统中,利用Luckfox官方SDK为Qt Creator配置完整的交叉编译工具链&am…...
第09课:10个高频场景 Prompt 模板库,复制、改几个词、直接用
阅读时长:约25分钟 难度:★★☆☆☆(使用难度低,但信息密度高) 适合人群:所有已完成地基篇的开发者——不管你是否学完了核心技能篇的每一课 学完之后:面对10种最常见的开发任务,你都…...
TlbbGmTool:重构游戏管理体验的5大架构创新解析
TlbbGmTool:重构游戏管理体验的5大架构创新解析 【免费下载链接】TlbbGmTool 某网络游戏的单机版本GM工具 项目地址: https://gitcode.com/gh_mirrors/tl/TlbbGmTool 从命令行困境到可视化治理的游戏运维实践指南 一、价值定位:重新定义游戏管理…...
GHelper:如何用轻量级工具解决华硕笔记本性能控制的三大难题?
GHelper:如何用轻量级工具解决华硕笔记本性能控制的三大难题? 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Fl…...
使用VS Code开发SenseVoice-Small模型应用的完整指南
使用VS Code开发SenseVoice-Small模型应用的完整指南 1. 开发环境配置 1.1 基础环境准备 在开始开发SenseVoice-Small模型应用之前,需要先确保你的开发环境准备就绪。VS Code作为轻量级但功能强大的代码编辑器,非常适合这类AI模型的开发工作。 首先确…...
RWKV7-1.5B-G1A模型部署与MATLAB科学计算联动方案
RWKV7-1.5B-G1A模型部署与MATLAB科学计算联动方案 1. 引言:科研工作者的新助手 科研工作中最耗时的往往不是实验本身,而是数据处理后的文字工作。想象这样一个场景:你刚完成一组复杂的MATLAB仿真实验,面对密密麻麻的数据图表&am…...
