Skip to content

Task Phase3 01

Notification

  • phase: phase3
  • id: task-phase3-01
  • module: User-Management
  • Depends on: task-phase2-01
  • Reference: PLAN.md

Background

Hoàn thiện tính năng an toàn bảo mật từ Phase 1 và 2. Trọng tâm là viết Unit Test cho cơ chế Lockout (khóa tài khoản tự động) khi nhập sai mật khẩu quá 5 lần, kiểm thử các Permission Class xem có xuất hiện lỗ hổng lọt quyền (Privilege Escalation) không, sau đó deploy lên nhánh Staging.

Code Snippets/Path file code cần sửa

  • path: ./MES-Backend/users/tests/test_auth.py
  • code:
    from rest_framework.test import APITestCase
    
    class AuthLockoutTests(APITestCase):
        def test_lockout_after_5_failed_attempts(self):
            # Gọi API login với mật khẩu sai 5 lần liên tiếp
            # Kiểm tra DB thấy failed_login_attempts = 5 và locked_until != None
            # Gọi lần 6 bằng mật khẩu ĐÚNG -> Bắt buộc bị trả về 403 Forbidden
            pass
    
  • business_logic: Giả lập các cuộc tấn công Brute-force để đảm bảo Backend kiên cố và đếm chính xác số lần request sai.
  • acceptance_criteria: Toàn bộ Test suite phần Auth chạy Pass 100%, tỷ lệ Test Coverage đạt tối thiểu 85%.

Technical Acceptance Criteria

  • http_status: 403 Forbidden (Lần thử đăng nhập thứ 6 cho dù đúng pass).
  • exception: AssertionError (Bắn ra nếu Unit Test failed).
  • log_format: Console log output của Unit Test dạng Verbose (Hiển thị chi tiết từng Test Case Passed/Failed) để build pipeline CI/CD dễ dàng tracking.