摘要:問題描述今天遇到個問題,的端和端本來已經(jīng)聯(lián)通成功,服務(wù)注冊發(fā)現(xiàn)都正常。后來開啟了驗證功能,端向端注冊服務(wù)時,需要驗證用戶名和密碼,問題就出現(xiàn)了。
問題描述
今天遇到個問題,Eureka的Server端和Client端本來已經(jīng)聯(lián)通成功,服務(wù)注冊、發(fā)現(xiàn)都正常。后來開啟了驗證功能,Client端向Server端注冊服務(wù)時,需要驗證用戶名和密碼,問題就出現(xiàn)了。
Client端無法向Server端注冊服務(wù),查看日志發(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) 方法,關(guān)閉掉 csrf,至此大工告成。
示例代碼@EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.csrf().disable(); super.configure(http); } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/71236.html
摘要:問題描述為了方便統(tǒng)一管理服務(wù)接口調(diào)用,服務(wù)調(diào)用客戶端采用,實施下來一直很順利。負責測試的同事反饋其中一個接口調(diào)用報錯,詭異的事只有這一個接口報錯。示例代碼區(qū)域信息模型添加時間最后修改時間其中是預先定義的常量,值為 問題描述 為了方便統(tǒng)一管理服務(wù)接口調(diào)用,服務(wù)調(diào)用 HTTP 客戶端采用Feign Client,實施下來一直很順利。負責測試的同事反饋其中一個接口調(diào)用報錯:Could not...
摘要:因為默認開啟了所有攻擊防御,需要禁用的防御。版本變化有點大,本次已成功升級了基礎(chǔ)依賴,及注冊中心配置中心。其他像代替了及其他組件再慢慢升級,的快速發(fā)展令升級變得非常蛋疼,本文記錄了升級過程中踩過的所有的坑。。。 Spring Boot 2.x 已經(jīng)發(fā)布了很久,現(xiàn)在 Spring Cloud 也發(fā)布了 基于 Spring Boot 2.x 的 Finchley 版本,現(xiàn)在一起為項目做一次...
摘要:并不會在微服務(wù)框架中有其它的注冊機制。微服務(wù)框架本身不會維護服務(wù)組件的啟動順序,這一問題可以由來解決。啟動先后邏輯為被依賴的服務(wù)先啟動,只有當前服務(wù)所依賴的服務(wù)全部正常啟動后,才會開始啟動流程。 概述 這篇文檔,著重解決一個問題:Spring Cloud 融合于 Rainbond 原生 Service Mesh 的正確姿勢是什么樣子的。 Rainbond 原生支持 Service Me...
摘要:單服務(wù)我們簡單編寫一個請求地址,輸出字符串信息,添加依賴如下所示配置文件如下所示服務(wù)名注冊到服務(wù)端口號配置該服務(wù)的服務(wù)名稱為,這里對應的。 在上一篇文章Spring Cloud GateWay 路由轉(zhuǎn)發(fā)規(guī)則介紹中我們講解了SpringCloud Gateway內(nèi)部提供的斷言、謂語,讓我們可以組合更精確的業(yè)務(wù)場景進行請求,既然SpringCloud GateWay擔任了網(wǎng)關(guān)的角色,在之前...
摘要:配置應用名稱,在注冊中心中顯示的服務(wù)注冊名稱。配置為為喜歡,即連接注冊中心使用地址形式,也可以使用,但生產(chǎn)環(huán)境不推薦。配置注冊中心清理無效節(jié)點的時間間隔,默認毫秒,即秒。 Spring Cloud的注冊中心可以由Eureka、Consul、Zookeeper、ETCD等來實現(xiàn),這里推薦使用Spring Cloud Eureka來實現(xiàn)注冊中心,它基于Netfilix的Eureka做了二次...
閱讀 1679·2021-11-16 11:41
閱讀 2469·2021-11-08 13:14
閱讀 3119·2019-08-29 17:16
閱讀 3089·2019-08-29 16:30
閱讀 1852·2019-08-29 13:51
閱讀 367·2019-08-23 18:38
閱讀 3236·2019-08-23 17:14
閱讀 640·2019-08-23 15:09