From 32ef4711032df9c9cdcc09a57172667e23525cfb Mon Sep 17 00:00:00 2001 From: feitianbubu Date: Wed, 3 Jun 2026 12:06:05 +0800 Subject: [PATCH] fix: treat allowed proxy quality statuses as pass not warn Co-Authored-By: Claude Opus 4.8 (1M context) --- backend/internal/service/admin_service.go | 7 ++++--- .../internal/service/admin_service_proxy_quality_test.go | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/backend/internal/service/admin_service.go b/backend/internal/service/admin_service.go index 00205d1f79..ee29e93d17 100644 --- a/backend/internal/service/admin_service.go +++ b/backend/internal/service/admin_service.go @@ -3339,12 +3339,13 @@ func runProxyQualityTarget(ctx context.Context, client *http.Client, target prox } if _, ok := target.AllowedStatuses[resp.StatusCode]; ok { + // 白名单内的状态码均代表目标可达:2xx 表示接口直接可用, + // 401/405 等是无鉴权探测的预期结果,同样视为连通正常,不再扣分。 + item.Status = "pass" if resp.StatusCode >= http.StatusOK && resp.StatusCode < http.StatusMultipleChoices { - item.Status = "pass" item.Message = fmt.Sprintf("HTTP %d", resp.StatusCode) } else { - item.Status = "warn" - item.Message = fmt.Sprintf("HTTP %d(目标可达,但鉴权或方法受限)", resp.StatusCode) + item.Message = fmt.Sprintf("HTTP %d(目标可达)", resp.StatusCode) } return item } diff --git a/backend/internal/service/admin_service_proxy_quality_test.go b/backend/internal/service/admin_service_proxy_quality_test.go index d3b3f61bc6..023b448fb5 100644 --- a/backend/internal/service/admin_service_proxy_quality_test.go +++ b/backend/internal/service/admin_service_proxy_quality_test.go @@ -72,7 +72,7 @@ func TestRunProxyQualityTarget_AllowedStatusPass(t *testing.T) { require.Equal(t, http.StatusOK, item.HTTPStatus) } -func TestRunProxyQualityTarget_AllowedStatusWarnForUnauthorized(t *testing.T) { +func TestRunProxyQualityTarget_AllowedStatusPassForUnauthorized(t *testing.T) { server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { w.WriteHeader(http.StatusUnauthorized) _, _ = w.Write([]byte(`{"error":"unauthorized"}`)) @@ -89,7 +89,7 @@ func TestRunProxyQualityTarget_AllowedStatusWarnForUnauthorized(t *testing.T) { } item := runProxyQualityTarget(context.Background(), server.Client(), target) - require.Equal(t, "warn", item.Status) + require.Equal(t, "pass", item.Status) require.Equal(t, http.StatusUnauthorized, item.HTTPStatus) require.Contains(t, item.Message, "目标可达") }