User Service & Gateway Service
1. JWT processing process in Spring Cloud Gateway
1. Client gửi request: Client gửi một HTTP request tới Gateway (Spring Cloud Gateway).
2. Gateway gọi JwtFilter: Gateway áp dụng JwtAuthenticationFilter bằng cách gọi phương thức filter(exchange, chain).
3. Kiểm tra endpoint:
- Nếu endpoint không cần bảo mật (ví dụ: /register, /login),
JwtFiltergọichain.filter(exchange)để chuyển tiếp request tớiNextFilter. - Nếu endpoint cần bảo mật,
JwtFilterkiểm tra headerAuthorization.
4. Xử lý header Authorization:
- Nếu header không tồn tại,
JwtFiltertrả về mã trạng thái 401 Unauthorized thông quaGateway. - Nếu header tồn tại,
JwtFiltergọiJwtUtil.validateToken(token)để kiểm tra tính hợp lệ của token.
5. Xác thực token:
- Nếu token không hợp lệ,
JwtUtilném ngoại lệ, vàJwtFiltertrả về mã trạng thái 400 Bad Request. - Nếu token hợp lệ,
JwtFiltergọiJwtUtil.getClaims(token)để lấy thông tinClaims, thêm id vào header, rồi chuyển tiếp request tớiNextFilter.
6. Hoàn tất xử lý: NextFilter tiếp tục xử lý request, và Gateway trả về response cho Client.