摘要:問題描述今天遇到個問題,的端和端本來已經聯(lián)通成功,服務注冊發(fā)現(xiàn)都正常。后來開啟了驗證功能,端向端注冊服務時,需要驗證用戶名和密碼,問題就出現(xiàn)了。
問題描述
今天遇到個問題,Eureka的Server端和Client端本來已經聯(lián)通成功,服務注冊、發(fā)現(xiàn)都正常。后來開啟了驗證功能,Client端向Server端注冊服務時,需要驗證用戶名和密碼,問題就出現(xiàn)了。
Client端無法向Server端注冊服務,查看日志發(fā)現(xiàn)
ERROR 11612 --- [tbeatExecutor-0] com.netflix.discovery.DiscoveryClient : *****:***** - was unable to send heartbeat! com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:112) ~[eureka-client-1.9.0.jar:1.9.0] at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89) ~[eureka-client-1.9.0.jar:1.9.0] at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$3.execute(EurekaHttpClientDecorator.java:92) ~[eureka-client-1.9.0.jar:1.9.0] at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77) ~[eureka-client-1.9.0.jar:1.9.0] at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89) ~[eureka-client-1.9.0.jar:1.9.0] at com.netflix.discovery.DiscoveryClient.renew(DiscoveryClient.java:846) ~[eureka-client-1.9.0.jar:1.9.0] at com.netflix.discovery.DiscoveryClient$HeartbeatThread.run(DiscoveryClient.java:1399) [eureka-client-1.9.0.jar:1.9.0] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_31] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_31] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_31] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_31] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_31]原因分析
查資料了解到新版(Spring Cloud 2.0 以上)的security默認啟用了csrf檢驗,要在eurekaServer端配置security的csrf檢驗為false
解決步驟在 Eureka Server 項目中,增加存放配置的專用包目錄;
添加一個繼承 WebSecurityConfigurerAdapter 的類;
在類上添加 @EnableWebSecurity 注解;
覆蓋父類的 configure(HttpSecurity http) 方法,關閉掉 csrf,至此大工告成。
示例代碼@EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.csrf().disable(); super.configure(http); } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71236.html
摘要:問題描述為了方便統(tǒng)一管理服務接口調用,服務調用客戶端采用,實施下來一直很順利。負責測試的同事反饋其中一個接口調用報錯,詭異的事只有這一個接口報錯。示例代碼區(qū)域信息模型添加時間最后修改時間其中是預先定義的常量,值為 問題描述 為了方便統(tǒng)一管理服務接口調用,服務調用 HTTP 客戶端采用Feign Client,實施下來一直很順利。負責測試的同事反饋其中一個接口調用報錯:Could not...
摘要:因為默認開啟了所有攻擊防御,需要禁用的防御。版本變化有點大,本次已成功升級了基礎依賴,及注冊中心配置中心。其他像代替了及其他組件再慢慢升級,的快速發(fā)展令升級變得非常蛋疼,本文記錄了升級過程中踩過的所有的坑。。。 Spring Boot 2.x 已經發(fā)布了很久,現(xiàn)在 Spring Cloud 也發(fā)布了 基于 Spring Boot 2.x 的 Finchley 版本,現(xiàn)在一起為項目做一次...
摘要:并不會在微服務框架中有其它的注冊機制。微服務框架本身不會維護服務組件的啟動順序,這一問題可以由來解決。啟動先后邏輯為被依賴的服務先啟動,只有當前服務所依賴的服務全部正常啟動后,才會開始啟動流程。 概述 這篇文檔,著重解決一個問題:Spring Cloud 融合于 Rainbond 原生 Service Mesh 的正確姿勢是什么樣子的。 Rainbond 原生支持 Service Me...
摘要:單服務我們簡單編寫一個請求地址,輸出字符串信息,添加依賴如下所示配置文件如下所示服務名注冊到服務端口號配置該服務的服務名稱為,這里對應的。 在上一篇文章Spring Cloud GateWay 路由轉發(fā)規(guī)則介紹中我們講解了SpringCloud Gateway內部提供的斷言、謂語,讓我們可以組合更精確的業(yè)務場景進行請求,既然SpringCloud GateWay擔任了網關的角色,在之前...
摘要:配置應用名稱,在注冊中心中顯示的服務注冊名稱。配置為為喜歡,即連接注冊中心使用地址形式,也可以使用,但生產環(huán)境不推薦。配置注冊中心清理無效節(jié)點的時間間隔,默認毫秒,即秒。 Spring Cloud的注冊中心可以由Eureka、Consul、Zookeeper、ETCD等來實現(xiàn),這里推薦使用Spring Cloud Eureka來實現(xiàn)注冊中心,它基于Netfilix的Eureka做了二次...
閱讀 1660·2021-11-16 11:41
閱讀 2458·2021-11-08 13:14
閱讀 3106·2019-08-29 17:16
閱讀 3079·2019-08-29 16:30
閱讀 1843·2019-08-29 13:51
閱讀 356·2019-08-23 18:38
閱讀 3223·2019-08-23 17:14
閱讀 630·2019-08-23 15:09