上一篇Eureka 實現微服務註冊發現講了用 Eureka 實現單體版的服務註冊與發現。由於本篇是在上一篇的基礎上的一點擴充,因此讀此篇以前要保證看了上一篇。html
Eureka 若是不加安全控制,會存在下列問題:git
- Eureka 控制檯能夠看到各服務的狀態和參數等信息,若是不加控制,只要知道註冊中心的地址,就能夠登陸上去看到各服務信息;
- 只要知道註冊中心地址,服務提供者就能夠註冊上來,對外提供服務;
- 只要知道註冊中心地址,服務消費者就能夠發現註冊中心的服務,並調用服務;
爲了安全起見,咱們仍是爲 Eureka 增長安全控制,這裏用 Spring Security 實現最基礎的用戶名、密碼控制。github
一個小知識點而已,幾個配置就能夠完成。spring
1. maven 包引用bootstrap
在服務註冊中心項目的 pom.xml 文件中引入 Spring Security 包。安全
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
2.增長應用配置app
在應用配置文件中增長關於 security 的配置,通常是放在 application.yml ,可是本項目中分了 application.yml 和 bootstrap.yml 兩個配置文件,因此我這裏是放在了 application.yml 中。maven
spring: application: name: kite-eureka-center security: user: name: test # 用戶名 password: 123456 # 密碼
此時,啓動並訪問 Eureka 管理控制檯,會提示輸入用戶名和密碼,輸入上面的 name 和 password 便可。spring-boot
3.服務提供者註冊服務微服務
在服務提供者的應用配置文件中作如下修改便可
eureka: instance: statusPageUrlPath: /actuator/info healthCheckUrlPath: /actuator/health prefer-ip-address: true client: register-with-eureka: true fetch-registry: true service-url: defaultZone: http://test:123456@localhost:3000/eureka/
上述配置與沒有安全控制的時候惟一的差異就是在 defaultZone 指定的 eureka 地址。在地址中增長了用戶名和密碼。
沒有安全控制以前的地址爲:
http://localhost:3000/eureka/
加了安全控制以後的地址爲:
http://test:123456@localhost:3000/eureka/
4.服務消費者
服務消費者和服務提供者配置方式一致。
具體的代碼已經放到 github
若是你以爲寫的還能夠的話,請點個「推薦」吧
歡迎關注,不按期更新本系列和其餘文章
古時的風箏
,進入公衆號能夠加入交流羣