security_test_exception.py 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. from core.exceptions.element_exceptions import AutomationFrameworkException
  2. class SecurityTestException(AutomationFrameworkException):
  3. """安全测试基础异常类"""
  4. def __init__(self, message="安全测试发生错误", details=None):
  5. super().__init__(message)
  6. self.details = details or {}
  7. def __str__(self):
  8. if self.details:
  9. return f"{self.message} | 详情: {self.details}"
  10. return self.message
  11. class VulnerabilityFoundException(SecurityTestException):
  12. """发现安全漏洞异常"""
  13. def __init__(self, vulnerability_type, url, details=None):
  14. message = f"发现安全漏洞: {vulnerability_type} 于 {url}"
  15. super().__init__(message, details)
  16. self.vulnerability_type = vulnerability_type
  17. self.url = url
  18. class SecurityScanTimeoutException(SecurityTestException):
  19. """安全扫描超时异常"""
  20. def __init__(self, scan_type, timeout_duration, details=None):
  21. message = f"{scan_type} 扫描超时,已超过 {timeout_duration} 秒"
  22. super().__init__(message, details)
  23. self.scan_type = scan_type
  24. self.timeout_duration = timeout_duration
  25. class SecurityConfigException(SecurityTestException):
  26. """安全配置异常"""
  27. def __init__(self, config_key, expected_value=None, actual_value=None, details=None):
  28. if expected_value and actual_value:
  29. message = f"安全配置错误: {config_key} 应为 {expected_value},但为 {actual_value}"
  30. else:
  31. message = f"安全配置错误: {config_key}"
  32. super().__init__(message, details)
  33. self.config_key = config_key
  34. self.expected_value = expected_value
  35. self.actual_value = actual_value
  36. class SecurityToolNotFoundException(SecurityTestException):
  37. """安全工具未找到异常"""
  38. def __init__(self, tool_name, installation_guide=None, details=None):
  39. message = f"安全测试工具未找到: {tool_name}"
  40. super().__init__(message, details)
  41. self.tool_name = tool_name
  42. self.installation_guide = installation_guide or f"请安装 {tool_name} 工具"
  43. class AuthenticationException(SecurityTestException):
  44. """认证失败异常"""
  45. def __init__(self, auth_type, endpoint, details=None):
  46. message = f"{auth_type} 认证失败于 {endpoint}"
  47. super().__init__(message, details)
  48. self.auth_type = auth_type
  49. self.endpoint = endpoint