Bài viết được sự cho phép của tác giả Trần Hữu Cương
Thông tin cấu hình của 1 project khá quan trọng, nó chứa nhiều thông tin nhạy cảm như username/password… nên ta cần phải bảo mật nó.
Để bảo mật thông tin cấu hình từ cloud config server có 2 cách đơn giản:
- Xác thực (dùng username/password hoặc token)
- Mã hóa/ giải mã (mã hóa ở cloud config server, và giải mã ở cloud config client)
Trong bài này mình sẽ thực hiện theo cách thứ nhất là xác thực các request tới cloud config server.
Xác thực trong Spring Cloud Config (Spring Cloud Config Authenticate)
Trong bài này mình sẽ sử dụng lại ví dụ trong bài trước:
Đối với project Spring Cloud Config Server
Thêm thư viện spring security vào file pom.xml
:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
Cấu hình security (username/password) trong file application.yml
security: user: name: admin1234 password: admin1234
Đối với project Spring Cloud Config Client
Cấu hình username/password cho cloud config: trong file bootstrap.yml
cloud: config: uri: http://localhost:8888 username: admin1234 password: admin1234
Demo: start project spring-cloud-config-server
Truy cập http://localhost:8888/app/dev để xem thông tin cấu hình của ứng dụng app
với profiles là dev
Server bắt buộc phải login mới có thể xem được.
Trong trường hợp này bạn phải nhập username/password đã cấu hình ở bên trên để pass qua màn hình login.
Cách khác là bạn có thể truyền luôn username/password vào trong url: http://admin1234:admin1234@localhost:8888/app/dev. Tuy nhiên trình duyệt web ko hỗ trợ kiểu url này nên bạn có thể thử bằng 1 rest client như postman hoặc mở màn hình cmd và chạy lệnh curl:
curl http://admin1234:admin1234@localhost:8888/app/dev
Còn đối với spring-cloud-config-client, do đã cấu hình sẵn username/password nên nó vẫn có thể lấy được cấu hình từ server như bình thường.
Okay, Done!
Download code ví dụ trên tại đây hoặc tại: https://github.com/stackjava/spring-cloud-config-authenticate
References: https://cloud.spring.io/spring-cloud-config/reference/html/
Bài viết gốc được đăng tải tại stackjava.com
Có thể bạn quan tâm:
- Nguồn tự học web front-end và web configuration ngon bổ rẻ
- Xử lý Conflict trong Git
- Giới thiệu CloudAMQP – Một RabbitMQ server trên Cloud
Xem thêm Việc làm Developer hấp dẫn trên TopDev