java - 尤里卡 RestTemplate 和 SSL
问题描述
我已将我的 eureka 客户端和服务配置为使用带有自签名证书的 SSL。创建密钥库并将证书从客户端导入服务器密钥库,反之亦然。但是现在当我尝试使用 restTemplate
@Bean
RestTemplate restTemplate;
用于解决我的服务http://my-service/convert/没有任何麻烦,使用它不能再这样做的底层框架?HTTP 响应为 302,带有安全:/ HTTPOnly
我试图像这样手动配置restTemplate
@Bean
@LoadBalanced
public RestTemplate restTemplate() throws Exception {
SSLContext sslContext = new SSLContextBuilder()
.create()
.loadKeyMaterial(ResourceUtils.getFile("classpath:client.jks"), allPassword.toCharArray(), allPassword.toCharArray())
.loadTrustMaterial(ResourceUtils.getFile("classpath:client.jks"), allPassword.toCharArray())
.build();
HttpClient client = HttpClients.custom()
.setSSLContext(sslContext)
.build();
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(client);
return new RestTemplate(factory);
}
虽然 restTemplate 正在创建好它现在似乎不知道来自 Eureka 框架的 my-service ?
Caused by: java.net.UnknownHostException: my-service
有没有人为 SSL 配置了一个 eureka 客户端/服务,以及一个可以使用来自客户端 jvm 的休息服务的负载平衡的 restTemplate?
我正在使用来自优秀 baeldung 家伙网站的文章 https://www.baeldung.com/spring-boot-https-self-signed-certificate
但是它似乎不适用于尤里卡框架提供的restTemplate。
谢谢,马克。
解决方案
非常感谢 Misantorp 指出该服务正试图重定向到 /login 上下文。似乎只需为 HTTPs 配置 Spring Boot 应用程序就足以触发一些 Spring 安全性。觉得这有点奇怪,因为我以前没有在那里。
我启动了一些spring security, allowedAll("/**") 并禁用了csrf,客户端再次成功调用了服务器。
推荐阅读
- javascript - 画布背景图像在其上绘制时清除
- reactjs - ReactJS 中的竞业禁止条款?
- c# - WPF Datagrid 文本列格式仅用于数字和逗号
- php - Yii2 Gridview 错误
- java - Spring Boot 2 多个数据源初始化模式
- python - 制作具有不相等行和列的 pandas 数据框
- docker - 查找在马拉松比赛中重新启动的最后 5 个应用程序
- javascript - Drupal 8 jQuery 3.3.1 错误:语法错误,无法识别的表达式:ul.nav > li > 应用 javascript 时出错
- python - Python:我开始一个新线程,我的程序暂停,直到线程完成
- php - jQuery AJAX 将表单数据和数组传递给 PHP