from core.exceptions.element_exceptions import AutomationFrameworkException class SecurityTestException(AutomationFrameworkException): """安全测试基础异常类""" def __init__(self, message="安全测试发生错误", details=None): super().__init__(message) self.details = details or {} def __str__(self): if self.details: return f"{self.message} | 详情: {self.details}" return self.message class VulnerabilityFoundException(SecurityTestException): """发现安全漏洞异常""" def __init__(self, vulnerability_type, url, details=None): message = f"发现安全漏洞: {vulnerability_type} 于 {url}" super().__init__(message, details) self.vulnerability_type = vulnerability_type self.url = url class SecurityScanTimeoutException(SecurityTestException): """安全扫描超时异常""" def __init__(self, scan_type, timeout_duration, details=None): message = f"{scan_type} 扫描超时,已超过 {timeout_duration} 秒" super().__init__(message, details) self.scan_type = scan_type self.timeout_duration = timeout_duration class SecurityConfigException(SecurityTestException): """安全配置异常""" def __init__(self, config_key, expected_value=None, actual_value=None, details=None): if expected_value and actual_value: message = f"安全配置错误: {config_key} 应为 {expected_value},但为 {actual_value}" else: message = f"安全配置错误: {config_key}" super().__init__(message, details) self.config_key = config_key self.expected_value = expected_value self.actual_value = actual_value class SecurityToolNotFoundException(SecurityTestException): """安全工具未找到异常""" def __init__(self, tool_name, installation_guide=None, details=None): message = f"安全测试工具未找到: {tool_name}" super().__init__(message, details) self.tool_name = tool_name self.installation_guide = installation_guide or f"请安装 {tool_name} 工具" class AuthenticationException(SecurityTestException): """认证失败异常""" def __init__(self, auth_type, endpoint, details=None): message = f"{auth_type} 认证失败于 {endpoint}" super().__init__(message, details) self.auth_type = auth_type self.endpoint = endpoint