16.3.1 Bật đăng nhập trong Admin server
Có lẽ việc thêm bảo mật cho Admin server là một ý tưởng tốt vì mặc định nó không được bảo vệ. Vì Admin server là một ứng dụng Spring Boot, bạn có thể bảo mật nó bằng Spring Security giống như với bất kỳ ứng dụng Spring Boot nào khác. Và cũng như với bất kỳ ứng dụng nào được bảo vệ bởi Spring Security, bạn hoàn toàn có thể quyết định sơ đồ bảo mật nào phù hợp nhất với nhu cầu của mình.
Ở mức tối thiểu, bạn có thể thêm starter bảo mật của Spring Boot vào build của Admin server bằng cách đánh dấu vào ô Security trong Initializr hoặc thêm phần <dependency> sau vào tệp pom.xml của dự án:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>Sau đó, để không phải liên tục kiểm tra nhật ký của Admin server để lấy mật khẩu được tạo ngẫu nhiên, bạn có thể cấu hình tên đăng nhập và mật khẩu quản trị đơn giản trong tệp application.yml như sau:
spring:
security:
user:
name: admin
password: 53cr3tBây giờ, khi tải Admin server trong trình duyệt, bạn sẽ được yêu cầu nhập tên đăng nhập và mật khẩu bằng biểu mẫu đăng nhập mặc định của Spring Security. Như trong đoạn mã, nhập admin và 53cr3t sẽ cho phép bạn truy cập vào hệ thống.
Theo mặc định, Spring Security sẽ bật CSRF trên Admin server của Spring Boot, điều này sẽ ngăn các ứng dụng client đăng ký với Admin server. Do đó, chúng ta cần một đoạn cấu hình bảo mật nhỏ để tắt CSRF, như được thể hiện ở đây:
package tacos.admin;
import org.springframework.context.annotation.Bean;
import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity;
import org.springframework.security.config.web.server.ServerHttpSecurity;
import org.springframework.security.web.server.SecurityWebFilterChain;
@EnableWebFluxSecurity
public class SecurityConfig {
@Bean
public SecurityWebFilterChain filterChain(ServerHttpSecurity http) throws Exception {
return http
.csrf()
.disable()
.build();
}
}Tất nhiên, cấu hình bảo mật này rất cơ bản. Tôi khuyên bạn nên tham khảo chương 5 để biết cách cấu hình Spring Security cho một sơ đồ bảo mật phong phú hơn xung quanh Admin server.
