{
	"Golang errors": {},
	"Issues": [
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "190",
				"url": "https://cwe.mitre.org/data/definitions/190.html"
			},
			"rule_id": "G115",
			"details": "integer overflow conversion uint64 -\u003e uint8",
			"file": "D:\\project\\internal\\auth\\password.go",
			"code": "105: \t\tcase \"p\":\n106: \t\t\tparallelism = uint8(val)\n107: \t\t}\n",
			"line": "106",
			"column": "23",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "190",
				"url": "https://cwe.mitre.org/data/definitions/190.html"
			},
			"rule_id": "G115",
			"details": "integer overflow conversion uint64 -\u003e uint32",
			"file": "D:\\project\\internal\\auth\\password.go",
			"code": "103: \t\tcase \"t\":\n104: \t\t\titerations = uint32(val)\n105: \t\tcase \"p\":\n",
			"line": "104",
			"column": "23",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "190",
				"url": "https://cwe.mitre.org/data/definitions/190.html"
			},
			"rule_id": "G115",
			"details": "integer overflow conversion uint64 -\u003e uint32",
			"file": "D:\\project\\internal\\auth\\password.go",
			"code": "101: \t\tcase \"m\":\n102: \t\t\tmemory = uint32(val)\n103: \t\tcase \"t\":\n",
			"line": "102",
			"column": "19",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "190",
				"url": "https://cwe.mitre.org/data/definitions/190.html"
			},
			"rule_id": "G115",
			"details": "integer overflow conversion uint64 -\u003e int64",
			"file": "D:\\project\\internal\\pkg\\antigravity\\request_transformer.go",
			"code": "29: \t\t\t\th := sha256.Sum256([]byte(text))\n30: \t\t\t\tn := int64(binary.BigEndian.Uint64(h[:8])) \u0026 0x7FFFFFFFFFFFFFFF\n31: \t\t\t\treturn \"-\" + strconv.FormatInt(n, 10)\n",
			"line": "30",
			"column": "15",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "190",
				"url": "https://cwe.mitre.org/data/definitions/190.html"
			},
			"rule_id": "G115",
			"details": "integer overflow conversion uint64 -\u003e int",
			"file": "D:\\project\\internal\\pkg\\antigravity\\response_transformer.go",
			"code": "364: \t\t\tseed ^= seed \u003c\u003c 17\n365: \t\t\tid[i] = chars[int(seed)%len(chars)]\n366: \t\t}\n",
			"line": "365",
			"column": "21",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "190",
				"url": "https://cwe.mitre.org/data/definitions/190.html"
			},
			"rule_id": "G115",
			"details": "integer overflow conversion rune -\u003e byte",
			"file": "D:\\project\\internal\\service\\captcha.go",
			"code": "197: \t\ty := 8 + rng.Intn(12)\n198: \t\tdrawChar(img, x, y, byte(ch), charColor)\n199: \t}\n",
			"line": "198",
			"column": "27",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "190",
				"url": "https://cwe.mitre.org/data/definitions/190.html"
			},
			"rule_id": "G115",
			"details": "integer overflow conversion int -\u003e uint8",
			"file": "D:\\project\\internal\\service\\captcha.go",
			"code": "206: \t\t\tB: uint8(rng.Intn(255)),\n207: \t\t\tA: uint8(100 + rng.Intn(100)),\n208: \t\t}\n",
			"line": "207",
			"column": "12",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "190",
				"url": "https://cwe.mitre.org/data/definitions/190.html"
			},
			"rule_id": "G115",
			"details": "integer overflow conversion int -\u003e uint8",
			"file": "D:\\project\\internal\\service\\captcha.go",
			"code": "205: \t\t\tG: uint8(rng.Intn(255)),\n206: \t\t\tB: uint8(rng.Intn(255)),\n207: \t\t\tA: uint8(100 + rng.Intn(100)),\n",
			"line": "206",
			"column": "12",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "190",
				"url": "https://cwe.mitre.org/data/definitions/190.html"
			},
			"rule_id": "G115",
			"details": "integer overflow conversion int -\u003e uint8",
			"file": "D:\\project\\internal\\service\\captcha.go",
			"code": "204: \t\t\tR: uint8(rng.Intn(255)),\n205: \t\t\tG: uint8(rng.Intn(255)),\n206: \t\t\tB: uint8(rng.Intn(255)),\n",
			"line": "205",
			"column": "12",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "190",
				"url": "https://cwe.mitre.org/data/definitions/190.html"
			},
			"rule_id": "G115",
			"details": "integer overflow conversion int -\u003e uint8",
			"file": "D:\\project\\internal\\service\\captcha.go",
			"code": "203: \t\tdotColor := color.RGBA{\n204: \t\t\tR: uint8(rng.Intn(255)),\n205: \t\t\tG: uint8(rng.Intn(255)),\n",
			"line": "204",
			"column": "12",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "190",
				"url": "https://cwe.mitre.org/data/definitions/190.html"
			},
			"rule_id": "G115",
			"details": "integer overflow conversion int -\u003e uint8",
			"file": "D:\\project\\internal\\service\\captcha.go",
			"code": "192: \t\t\tG: uint8(rng.Intn(150)),\n193: \t\t\tB: uint8(rng.Intn(150)),\n194: \t\t\tA: 255,\n",
			"line": "193",
			"column": "12",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "190",
				"url": "https://cwe.mitre.org/data/definitions/190.html"
			},
			"rule_id": "G115",
			"details": "integer overflow conversion int -\u003e uint8",
			"file": "D:\\project\\internal\\service\\captcha.go",
			"code": "191: \t\t\tR: uint8(rng.Intn(150)),\n192: \t\t\tG: uint8(rng.Intn(150)),\n193: \t\t\tB: uint8(rng.Intn(150)),\n",
			"line": "192",
			"column": "12",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "190",
				"url": "https://cwe.mitre.org/data/definitions/190.html"
			},
			"rule_id": "G115",
			"details": "integer overflow conversion int -\u003e uint8",
			"file": "D:\\project\\internal\\service\\captcha.go",
			"code": "190: \t\tcharColor := color.RGBA{\n191: \t\t\tR: uint8(rng.Intn(150)),\n192: \t\t\tG: uint8(rng.Intn(150)),\n",
			"line": "191",
			"column": "12",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "190",
				"url": "https://cwe.mitre.org/data/definitions/190.html"
			},
			"rule_id": "G115",
			"details": "integer overflow conversion int -\u003e uint8",
			"file": "D:\\project\\internal\\service\\captcha.go",
			"code": "177: \t\t\tG: uint8(rng.Intn(200)),\n178: \t\t\tB: uint8(rng.Intn(200)),\n179: \t\t\tA: 255,\n",
			"line": "178",
			"column": "12",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "190",
				"url": "https://cwe.mitre.org/data/definitions/190.html"
			},
			"rule_id": "G115",
			"details": "integer overflow conversion int -\u003e uint8",
			"file": "D:\\project\\internal\\service\\captcha.go",
			"code": "176: \t\t\tR: uint8(rng.Intn(200)),\n177: \t\t\tG: uint8(rng.Intn(200)),\n178: \t\t\tB: uint8(rng.Intn(200)),\n",
			"line": "177",
			"column": "12",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "190",
				"url": "https://cwe.mitre.org/data/definitions/190.html"
			},
			"rule_id": "G115",
			"details": "integer overflow conversion int -\u003e uint8",
			"file": "D:\\project\\internal\\service\\captcha.go",
			"code": "175: \t\tlineColor := color.RGBA{\n176: \t\t\tR: uint8(rng.Intn(200)),\n177: \t\t\tG: uint8(rng.Intn(200)),\n",
			"line": "176",
			"column": "12",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "190",
				"url": "https://cwe.mitre.org/data/definitions/190.html"
			},
			"rule_id": "G115",
			"details": "integer overflow conversion int -\u003e uint8",
			"file": "D:\\project\\internal\\service\\captcha.go",
			"code": "167: \t\tG: uint8(220 + rng.Intn(35)),\n168: \t\tB: uint8(220 + rng.Intn(35)),\n169: \t\tA: 255,\n",
			"line": "168",
			"column": "11",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "190",
				"url": "https://cwe.mitre.org/data/definitions/190.html"
			},
			"rule_id": "G115",
			"details": "integer overflow conversion int -\u003e uint8",
			"file": "D:\\project\\internal\\service\\captcha.go",
			"code": "166: \t\tR: uint8(220 + rng.Intn(35)),\n167: \t\tG: uint8(220 + rng.Intn(35)),\n168: \t\tB: uint8(220 + rng.Intn(35)),\n",
			"line": "167",
			"column": "11",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "190",
				"url": "https://cwe.mitre.org/data/definitions/190.html"
			},
			"rule_id": "G115",
			"details": "integer overflow conversion int -\u003e uint8",
			"file": "D:\\project\\internal\\service\\captcha.go",
			"code": "165: \tbgColor := color.RGBA{\n166: \t\tR: uint8(220 + rng.Intn(35)),\n167: \t\tG: uint8(220 + rng.Intn(35)),\n",
			"line": "166",
			"column": "11",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "190",
				"url": "https://cwe.mitre.org/data/definitions/190.html"
			},
			"rule_id": "G115",
			"details": "integer overflow conversion int -\u003e uint32",
			"file": "D:\\project\\internal\\auth\\password.go",
			"code": "126: \t\tparallelism,\n127: \t\tuint32(len(storedHash)),\n128: \t)\n",
			"line": "127",
			"column": "9",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "190",
				"url": "https://cwe.mitre.org/data/definitions/190.html"
			},
			"rule_id": "G115",
			"details": "integer overflow conversion int -\u003e uint",
			"file": "D:\\project\\internal\\service\\webhook.go",
			"code": "267: \t\t} else {\n268: \t\t\tbackoff = time.Duration(1\u003c\u003cuint(task.attempt)) * time.Second\n269: \t\t}\n",
			"line": "268",
			"column": "35",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "190",
				"url": "https://cwe.mitre.org/data/definitions/190.html"
			},
			"rule_id": "G115",
			"details": "integer overflow conversion int -\u003e uint",
			"file": "D:\\project\\internal\\pkg\\geminicli\\drive_client.go",
			"code": "98: \t\t\t\tdefer func() { _ = resp.Body.Close() }()\n99: \t\t\t\tbackoff := time.Duration(1\u003c\u003cuint(attempt)) * time.Second\n100: \t\t\t\tjitter := time.Duration(rng.Intn(1000)) * time.Millisecond\n",
			"line": "99",
			"column": "37",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "190",
				"url": "https://cwe.mitre.org/data/definitions/190.html"
			},
			"rule_id": "G115",
			"details": "integer overflow conversion int -\u003e uint",
			"file": "D:\\project\\internal\\pkg\\geminicli\\drive_client.go",
			"code": "76: \t\t\tif attempt \u003c maxRetries-1 {\n77: \t\t\t\tbackoff := time.Duration(1\u003c\u003cuint(attempt)) * time.Second\n78: \t\t\t\tjitter := time.Duration(rng.Intn(1000)) * time.Millisecond\n",
			"line": "77",
			"column": "37",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "190",
				"url": "https://cwe.mitre.org/data/definitions/190.html"
			},
			"rule_id": "G115",
			"details": "integer overflow conversion int -\u003e int32",
			"file": "D:\\project\\internal\\pkg\\errors\\errors.go",
			"code": "78: \t\tStatus: Status{\n79: \t\t\tCode:    int32(code),\n80: \t\t\tMessage: message,\n",
			"line": "79",
			"column": "18",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "338",
				"url": "https://cwe.mitre.org/data/definitions/338.html"
			},
			"rule_id": "G404",
			"details": "Use of weak random number generator (math/rand or math/rand/v2 instead of crypto/rand)",
			"file": "D:\\project\\internal\\service\\captcha.go",
			"code": "163: \t// 随机背景色（浅色）\n164: \trng := rand.New(rand.NewSource(time.Now().UnixNano()))\n165: \tbgColor := color.RGBA{\n",
			"line": "164",
			"column": "9",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "338",
				"url": "https://cwe.mitre.org/data/definitions/338.html"
			},
			"rule_id": "G404",
			"details": "Use of weak random number generator (math/rand or math/rand/v2 instead of crypto/rand)",
			"file": "D:\\project\\internal\\pkg\\geminicli\\drive_client.go",
			"code": "66: \tmaxRetries := 3\n67: \trng := rand.New(rand.NewSource(time.Now().UnixNano()))\n68: \tfor attempt := 0; attempt \u003c maxRetries; attempt++ {\n",
			"line": "67",
			"column": "9",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "338",
				"url": "https://cwe.mitre.org/data/definitions/338.html"
			},
			"rule_id": "G404",
			"details": "Use of weak random number generator (math/rand or math/rand/v2 instead of crypto/rand)",
			"file": "D:\\project\\internal\\pkg\\antigravity\\request_transformer.go",
			"code": "18: var (\n19: \tsessionRand      = rand.New(rand.NewSource(time.Now().UnixNano()))\n20: \tsessionRandMutex sync.Mutex\n",
			"line": "19",
			"column": "21",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "LOW",
			"cwe": {
				"id": "798",
				"url": "https://cwe.mitre.org/data/definitions/798.html"
			},
			"rule_id": "G101",
			"details": "Potential hardcoded credentials: Google Cloud Platform OAuth",
			"file": "D:\\project\\internal\\pkg\\geminicli\\constants.go",
			"code": "40: \t// restrict which scopes are allowed for this client.\n41: \tGeminiCLIOAuthClientID     = \"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com\"\n42: \tGeminiCLIOAuthClientSecret = \"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\"\n",
			"line": "41",
			"column": "2",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "LOW",
			"cwe": {
				"id": "798",
				"url": "https://cwe.mitre.org/data/definitions/798.html"
			},
			"rule_id": "G101",
			"details": "Potential hardcoded credentials: Google Cloud Platform OAuth",
			"file": "D:\\project\\internal\\pkg\\antigravity\\oauth.go",
			"code": "25: \t// Antigravity OAuth 客户端凭证\n26: \tClientID = \"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com\"\n27: \n",
			"line": "26",
			"column": "2",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "LOW",
			"cwe": {
				"id": "798",
				"url": "https://cwe.mitre.org/data/definitions/798.html"
			},
			"rule_id": "G101",
			"details": "Potential hardcoded credentials",
			"file": "D:\\project\\internal\\service\\webhook.go",
			"code": "98: func defaultWebhookServiceConfig() WebhookServiceConfig {\n99: \treturn WebhookServiceConfig{\n100: \t\tEnabled:      true,\n101: \t\tSecretHeader: \"X-Webhook-Signature\",\n102: \t\tTimeoutSec:   10,\n103: \t\tMaxRetries:   3,\n104: \t\tRetryBackoff: \"exponential\",\n105: \t\tWorkerCount:  4,\n106: \t\tQueueSize:    1000,\n107: \t}\n108: }\n",
			"line": "99-107",
			"column": "9",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "LOW",
			"cwe": {
				"id": "798",
				"url": "https://cwe.mitre.org/data/definitions/798.html"
			},
			"rule_id": "G101",
			"details": "Potential hardcoded credentials",
			"file": "D:\\project\\internal\\service\\auth.go",
			"code": "22: \tuserInfoCachePrefix   = \"auth_user_info:\"\n23: \ttokenBlacklistPrefix  = \"auth_token_blacklist:\"\n24: \tdefaultUserCacheTTL   = 15 * time.Minute\n",
			"line": "23",
			"column": "2",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "LOW",
			"cwe": {
				"id": "798",
				"url": "https://cwe.mitre.org/data/definitions/798.html"
			},
			"rule_id": "G101",
			"details": "Potential hardcoded credentials",
			"file": "D:\\project\\internal\\pkg\\openai\\oauth.go",
			"code": "24: \tAuthorizeURL = \"https://auth.openai.com/oauth/authorize\"\n25: \tTokenURL     = \"https://auth.openai.com/oauth/token\"\n26: \n",
			"line": "25",
			"column": "2",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "LOW",
			"cwe": {
				"id": "798",
				"url": "https://cwe.mitre.org/data/definitions/798.html"
			},
			"rule_id": "G101",
			"details": "Potential hardcoded credentials",
			"file": "D:\\project\\internal\\pkg\\oauth\\oauth.go",
			"code": "22: \tAuthorizeURL = \"https://claude.ai/oauth/authorize\"\n23: \tTokenURL     = \"https://platform.claude.com/v1/oauth/token\"\n24: \tRedirectURI  = \"https://platform.claude.com/oauth/code/callback\"\n",
			"line": "23",
			"column": "2",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "LOW",
			"cwe": {
				"id": "798",
				"url": "https://cwe.mitre.org/data/definitions/798.html"
			},
			"rule_id": "G101",
			"details": "Potential hardcoded credentials",
			"file": "D:\\project\\internal\\pkg\\geminicli\\constants.go",
			"code": "44: \t// GeminiCLIOAuthClientSecretEnv is the environment variable name for the built-in client secret.\n45: \tGeminiCLIOAuthClientSecretEnv = \"GEMINI_CLI_OAUTH_CLIENT_SECRET\"\n46: \n",
			"line": "45",
			"column": "2",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "LOW",
			"cwe": {
				"id": "798",
				"url": "https://cwe.mitre.org/data/definitions/798.html"
			},
			"rule_id": "G101",
			"details": "Potential hardcoded credentials",
			"file": "D:\\project\\internal\\pkg\\geminicli\\constants.go",
			"code": "41: \tGeminiCLIOAuthClientID     = \"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com\"\n42: \tGeminiCLIOAuthClientSecret = \"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\"\n43: \n",
			"line": "42",
			"column": "2",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "LOW",
			"cwe": {
				"id": "798",
				"url": "https://cwe.mitre.org/data/definitions/798.html"
			},
			"rule_id": "G101",
			"details": "Potential hardcoded credentials",
			"file": "D:\\project\\internal\\pkg\\geminicli\\constants.go",
			"code": "10: \tAuthorizeURL = \"https://accounts.google.com/o/oauth2/v2/auth\"\n11: \tTokenURL     = \"https://oauth2.googleapis.com/token\"\n12: \n",
			"line": "11",
			"column": "2",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "LOW",
			"cwe": {
				"id": "798",
				"url": "https://cwe.mitre.org/data/definitions/798.html"
			},
			"rule_id": "G101",
			"details": "Potential hardcoded credentials",
			"file": "D:\\project\\internal\\pkg\\ctxkey\\ctxkey.go",
			"code": "41: \t// 用于 ClaudeCodeOnly 验证绕过（绕过 system prompt 检查，但仍需验证 User-Agent）\n42: \tIsMaxTokensOneHaikuRequest Key = \"ctx_is_max_tokens_one_haiku\"\n43: \n",
			"line": "42",
			"column": "2",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "LOW",
			"cwe": {
				"id": "798",
				"url": "https://cwe.mitre.org/data/definitions/798.html"
			},
			"rule_id": "G101",
			"details": "Potential hardcoded credentials",
			"file": "D:\\project\\internal\\pkg\\antigravity\\oauth.go",
			"code": "55: // defaultClientSecret 可通过环境变量 ANTIGRAVITY_OAUTH_CLIENT_SECRET 配置\n56: var defaultClientSecret = \"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\"\n57: \n",
			"line": "56",
			"column": "5",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "LOW",
			"cwe": {
				"id": "798",
				"url": "https://cwe.mitre.org/data/definitions/798.html"
			},
			"rule_id": "G101",
			"details": "Potential hardcoded credentials",
			"file": "D:\\project\\internal\\pkg\\antigravity\\oauth.go",
			"code": "28: \t// AntigravityOAuthClientSecretEnv 是 Antigravity OAuth client_secret 的环境变量名。\n29: \tAntigravityOAuthClientSecretEnv = \"ANTIGRAVITY_OAUTH_CLIENT_SECRET\"\n30: \n",
			"line": "29",
			"column": "2",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "LOW",
			"cwe": {
				"id": "798",
				"url": "https://cwe.mitre.org/data/definitions/798.html"
			},
			"rule_id": "G101",
			"details": "Potential hardcoded credentials",
			"file": "D:\\project\\internal\\pkg\\antigravity\\oauth.go",
			"code": "21: \tAuthorizeURL = \"https://accounts.google.com/o/oauth2/v2/auth\"\n22: \tTokenURL     = \"https://oauth2.googleapis.com/token\"\n23: \tUserInfoURL  = \"https://www.googleapis.com/oauth2/v2/userinfo\"\n",
			"line": "22",
			"column": "2",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "LOW",
			"cwe": {
				"id": "798",
				"url": "https://cwe.mitre.org/data/definitions/798.html"
			},
			"rule_id": "G101",
			"details": "Potential hardcoded credentials",
			"file": "D:\\project\\internal\\auth\\providers\\weibo.go",
			"code": "90: func (w *WeiboProvider) ExchangeCode(ctx context.Context, code string) (*WeiboTokenResponse, error) {\n91: \ttokenURL := \"https://api.weibo.com/oauth2/access_token\"\n92: \n",
			"line": "91",
			"column": "2",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "LOW",
			"cwe": {
				"id": "798",
				"url": "https://cwe.mitre.org/data/definitions/798.html"
			},
			"rule_id": "G101",
			"details": "Potential hardcoded credentials",
			"file": "D:\\project\\internal\\auth\\providers\\twitter.go",
			"code": "201: func (t *TwitterProvider) RefreshToken(ctx context.Context, refreshToken string) (*TwitterTokenResponse, error) {\n202: \ttokenURL := \"https://api.twitter.com/2/oauth2/token\"\n203: \n",
			"line": "202",
			"column": "2",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "LOW",
			"cwe": {
				"id": "798",
				"url": "https://cwe.mitre.org/data/definitions/798.html"
			},
			"rule_id": "G101",
			"details": "Potential hardcoded credentials",
			"file": "D:\\project\\internal\\auth\\providers\\twitter.go",
			"code": "128: func (t *TwitterProvider) ExchangeCode(ctx context.Context, code, codeVerifier string) (*TwitterTokenResponse, error) {\n129: \ttokenURL := \"https://api.twitter.com/2/oauth2/token\"\n130: \n",
			"line": "129",
			"column": "2",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "LOW",
			"cwe": {
				"id": "798",
				"url": "https://cwe.mitre.org/data/definitions/798.html"
			},
			"rule_id": "G101",
			"details": "Potential hardcoded credentials",
			"file": "D:\\project\\internal\\auth\\providers\\google.go",
			"code": "146: func (g *GoogleProvider) RefreshToken(ctx context.Context, refreshToken string) (*GoogleTokenResponse, error) {\n147: \ttokenURL := \"https://oauth2.googleapis.com/token\"\n148: \n",
			"line": "147",
			"column": "2",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "LOW",
			"cwe": {
				"id": "798",
				"url": "https://cwe.mitre.org/data/definitions/798.html"
			},
			"rule_id": "G101",
			"details": "Potential hardcoded credentials",
			"file": "D:\\project\\internal\\auth\\providers\\google.go",
			"code": "86: func (g *GoogleProvider) ExchangeCode(ctx context.Context, code string) (*GoogleTokenResponse, error) {\n87: \ttokenURL := \"https://oauth2.googleapis.com/token\"\n88: \n",
			"line": "87",
			"column": "2",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "LOW",
			"cwe": {
				"id": "798",
				"url": "https://cwe.mitre.org/data/definitions/798.html"
			},
			"rule_id": "G101",
			"details": "Potential hardcoded credentials",
			"file": "D:\\project\\internal\\auth\\providers\\github.go",
			"code": "59: func (g *GitHubProvider) ExchangeCode(ctx context.Context, code string) (*GitHubTokenResponse, error) {\n60: \ttokenURL := \"https://github.com/login/oauth/access_token\"\n61: \n",
			"line": "60",
			"column": "2",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "LOW",
			"cwe": {
				"id": "798",
				"url": "https://cwe.mitre.org/data/definitions/798.html"
			},
			"rule_id": "G101",
			"details": "Potential hardcoded credentials",
			"file": "D:\\project\\internal\\auth\\providers\\douyin.go",
			"code": "70: func (d *DouyinProvider) ExchangeCode(ctx context.Context, code string) (*DouyinTokenResponse, error) {\n71: \ttokenURL := \"https://open.douyin.com/oauth/access_token/\"\n72: \n",
			"line": "71",
			"column": "2",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "LOW",
			"cwe": {
				"id": "798",
				"url": "https://cwe.mitre.org/data/definitions/798.html"
			},
			"rule_id": "G101",
			"details": "Potential hardcoded credentials",
			"file": "D:\\project\\internal\\auth\\oauth_config.go",
			"code": "199: \t\t},\n200: \t\tTwitter: TwitterOAuthConfig{\n201: \t\t\tEnabled:      getEnvBool(\"TWITTER_OAUTH_ENABLED\", false),\n202: \t\t\tClientID:     getEnv(\"TWITTER_CLIENT_ID\", \"\"),\n203: \t\t\tClientSecret: getEnv(\"TWITTER_CLIENT_SECRET\", \"\"),\n204: \t\t\tAuthURL:      \"https://twitter.com/i/oauth2/authorize\",\n205: \t\t\tTokenURL:     \"https://api.twitter.com/2/oauth2/token\",\n206: \t\t\tUserInfoURL:  \"https://api.twitter.com/2/users/me\",\n207: \t\t},\n208: \t}\n",
			"line": "200-207",
			"column": "12",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "LOW",
			"cwe": {
				"id": "798",
				"url": "https://cwe.mitre.org/data/definitions/798.html"
			},
			"rule_id": "G101",
			"details": "Potential hardcoded credentials",
			"file": "D:\\project\\internal\\auth\\oauth_config.go",
			"code": "190: \t\t},\n191: \t\tWeibo: WeiboOAuthConfig{\n192: \t\t\tEnabled:     getEnvBool(\"WEIBO_OAUTH_ENABLED\", false),\n193: \t\t\tAppKey:      getEnv(\"WEIBO_APP_KEY\", \"\"),\n194: \t\t\tAppSecret:   getEnv(\"WEIBO_APP_SECRET\", \"\"),\n195: \t\t\tRedirectURI: getEnv(\"WEIBO_REDIRECT_URI\", \"\"),\n196: \t\t\tAuthURL:     \"https://api.weibo.com/oauth2/authorize\",\n197: \t\t\tTokenURL:    \"https://api.weibo.com/oauth2/access_token\",\n198: \t\t\tUserInfoURL: \"https://api.weibo.com/2/users/show.json\",\n199: \t\t},\n200: \t\tTwitter: TwitterOAuthConfig{\n",
			"line": "191-199",
			"column": "10",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "LOW",
			"cwe": {
				"id": "798",
				"url": "https://cwe.mitre.org/data/definitions/798.html"
			},
			"rule_id": "G101",
			"details": "Potential hardcoded credentials",
			"file": "D:\\project\\internal\\auth\\oauth_config.go",
			"code": "179: \t\t},\n180: \t\tQQ: QQOAuthConfig{\n181: \t\t\tEnabled:     getEnvBool(\"QQ_OAUTH_ENABLED\", false),\n182: \t\t\tAppID:       getEnv(\"QQ_APP_ID\", \"\"),\n183: \t\t\tAppKey:      getEnv(\"QQ_APP_KEY\", \"\"),\n184: \t\t\tAppSecret:   getEnv(\"QQ_APP_SECRET\", \"\"),\n185: \t\t\tRedirectURI: getEnv(\"QQ_REDIRECT_URI\", \"\"),\n186: \t\t\tAuthURL:     \"https://graph.qq.com/oauth2.0/authorize\",\n187: \t\t\tTokenURL:    \"https://graph.qq.com/oauth2.0/token\",\n188: \t\t\tOpenIDURL:   \"https://graph.qq.com/oauth2.0/me\",\n189: \t\t\tUserInfoURL: \"https://graph.qq.com/user/get_user_info\",\n190: \t\t},\n191: \t\tWeibo: WeiboOAuthConfig{\n",
			"line": "180-190",
			"column": "7",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "LOW",
			"cwe": {
				"id": "798",
				"url": "https://cwe.mitre.org/data/definitions/798.html"
			},
			"rule_id": "G101",
			"details": "Potential hardcoded credentials",
			"file": "D:\\project\\internal\\auth\\oauth_config.go",
			"code": "171: \t\t},\n172: \t\tFacebook: FacebookOAuthConfig{\n173: \t\t\tEnabled:     getEnvBool(\"FACEBOOK_OAUTH_ENABLED\", false),\n174: \t\t\tAppID:       getEnv(\"FACEBOOK_APP_ID\", \"\"),\n175: \t\t\tAppSecret:   getEnv(\"FACEBOOK_APP_SECRET\", \"\"),\n176: \t\t\tAuthURL:     \"https://www.facebook.com/v18.0/dialog/oauth\",\n177: \t\t\tTokenURL:    \"https://graph.facebook.com/v18.0/oauth/access_token\",\n178: \t\t\tUserInfoURL: \"https://graph.facebook.com/v18.0/me?fields=id,name,email,picture\",\n179: \t\t},\n180: \t\tQQ: QQOAuthConfig{\n",
			"line": "172-179",
			"column": "13",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "LOW",
			"cwe": {
				"id": "798",
				"url": "https://cwe.mitre.org/data/definitions/798.html"
			},
			"rule_id": "G101",
			"details": "Potential hardcoded credentials",
			"file": "D:\\project\\internal\\auth\\oauth_config.go",
			"code": "162: \t\t},\n163: \t\tGoogle: GoogleOAuthConfig{\n164: \t\t\tEnabled:      getEnvBool(\"GOOGLE_OAUTH_ENABLED\", false),\n165: \t\t\tClientID:     getEnv(\"GOOGLE_CLIENT_ID\", \"\"),\n166: \t\t\tClientSecret: getEnv(\"GOOGLE_CLIENT_SECRET\", \"\"),\n167: \t\t\tAuthURL:      \"https://accounts.google.com/o/oauth2/v2/auth\",\n168: \t\t\tTokenURL:     \"https://oauth2.googleapis.com/token\",\n169: \t\t\tUserInfoURL:  \"https://www.googleapis.com/oauth2/v2/userinfo\",\n170: \t\t\tJWTAuthURL:   \"https://oauth2.googleapis.com/tokeninfo\",\n171: \t\t},\n172: \t\tFacebook: FacebookOAuthConfig{\n",
			"line": "163-171",
			"column": "11",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "LOW",
			"cwe": {
				"id": "798",
				"url": "https://cwe.mitre.org/data/definitions/798.html"
			},
			"rule_id": "G101",
			"details": "Potential hardcoded credentials",
			"file": "D:\\project\\internal\\auth\\oauth_config.go",
			"code": "154: \t\t},\n155: \t\tWeChat: WeChatOAuthConfig{\n156: \t\t\tEnabled:     getEnvBool(\"WECHAT_OAUTH_ENABLED\", false),\n157: \t\t\tAppID:       getEnv(\"WECHAT_APP_ID\", \"\"),\n158: \t\t\tAppSecret:   getEnv(\"WECHAT_APP_SECRET\", \"\"),\n159: \t\t\tAuthURL:     \"https://open.weixin.qq.com/connect/qrconnect\",\n160: \t\t\tTokenURL:    \"https://api.weixin.qq.com/sns/oauth2/access_token\",\n161: \t\t\tUserInfoURL: \"https://api.weixin.qq.com/sns/userinfo\",\n162: \t\t},\n163: \t\tGoogle: GoogleOAuthConfig{\n",
			"line": "155-162",
			"column": "11",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "400",
				"url": "https://cwe.mitre.org/data/definitions/400.html"
			},
			"rule_id": "G118",
			"details": "Goroutine uses context.Background/TODO while request-scoped context is available",
			"file": "D:\\project\\internal\\service\\user_service.go",
			"code": "84: \n85: \t\tgo func() {\n86: \t\t\t// 使用带超时的独立 context（不能使用请求 ctx，该 goroutine 在请求完成后仍可能运行）\n",
			"line": "85",
			"column": "3",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "400",
				"url": "https://cwe.mitre.org/data/definitions/400.html"
			},
			"rule_id": "G118",
			"details": "Goroutine uses context.Background/TODO while request-scoped context is available",
			"file": "D:\\project\\internal\\service\\password_reset.go",
			"code": "293: \tif s.passwordHistoryRepo != nil {\n294: \t\tgo func() {\n295: \t\t\t// 使用带超时的独立 context，防止 DB 写入无限等待\n",
			"line": "294",
			"column": "3",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "400",
				"url": "https://cwe.mitre.org/data/definitions/400.html"
			},
			"rule_id": "G118",
			"details": "Goroutine uses context.Background/TODO while request-scoped context is available",
			"file": "D:\\project\\internal\\service\\auth_email.go",
			"code": "92: \t\t// 使用独立上下文避免请求结束后被取消\n93: \t\tgo func() {\n94: \t\t\tbgCtx, cancel := context.WithTimeout(context.Background(), 30*time.Second)\n",
			"line": "93",
			"column": "3",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "HIGH",
			"confidence": "MEDIUM",
			"cwe": {
				"id": "400",
				"url": "https://cwe.mitre.org/data/definitions/400.html"
			},
			"rule_id": "G118",
			"details": "Goroutine uses context.Background/TODO while request-scoped context is available",
			"file": "D:\\project\\internal\\service\\auth.go",
			"code": "481: \n482: \tgo func() {\n483: \t\t// 使用带超时的独立 context，防止日志写入无限等待\n",
			"line": "482",
			"column": "2",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "MEDIUM",
			"confidence": "HIGH",
			"cwe": {
				"id": "22",
				"url": "https://cwe.mitre.org/data/definitions/22.html"
			},
			"rule_id": "G304",
			"details": "Potential file inclusion via variable",
			"file": "D:\\project\\internal\\auth\\oauth_config.go",
			"code": "129: \t\t// 从文件加载配置\n130: \t\tdata, readErr := os.ReadFile(configPath)\n131: \t\tif readErr != nil {\n",
			"line": "130",
			"column": "20",
			"nosec": false,
			"suppressions": null,
			"autofix": "Consider using os.Root to scope file access under a fixed root (Go \u003e=1.24). Prefer root.Open/root.Stat over os.Open/os.Stat to prevent directory traversal."
		},
		{
			"severity": "MEDIUM",
			"confidence": "HIGH",
			"cwe": {
				"id": "22",
				"url": "https://cwe.mitre.org/data/definitions/22.html"
			},
			"rule_id": "G304",
			"details": "Potential file inclusion via variable",
			"file": "D:\\project\\internal\\auth\\jwt.go",
			"code": "234: \t}\n235: \tdata, err := os.ReadFile(path)\n236: \tif err != nil {\n",
			"line": "235",
			"column": "15",
			"nosec": false,
			"suppressions": null,
			"autofix": "Consider using os.Root to scope file access under a fixed root (Go \u003e=1.24). Prefer root.Open/root.Stat over os.Open/os.Stat to prevent directory traversal."
		},
		{
			"severity": "MEDIUM",
			"confidence": "HIGH",
			"cwe": {
				"id": "276",
				"url": "https://cwe.mitre.org/data/definitions/276.html"
			},
			"rule_id": "G306",
			"details": "Expect WriteFile permissions to be 0600 or less",
			"file": "D:\\project\\internal\\auth\\jwt.go",
			"code": "218: \t}\n219: \tif err := os.WriteFile(publicPath, publicPEM, 0o644); err != nil {\n220: \t\treturn \"\", \"\", err\n",
			"line": "219",
			"column": "12",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\service\\webhook.go",
			"code": "246: \tvar respBuf bytes.Buffer\n247: \trespBuf.ReadFrom(resp.Body)\n248: \tsuccess := resp.StatusCode \u003e= 200 \u0026\u0026 resp.StatusCode \u003c 300\n",
			"line": "247",
			"column": "2",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\service\\password_reset.go",
			"code": "254: \ts.cache.Delete(ctx, codeKey)\n255: \ts.cache.Delete(ctx, cacheKey)\n256: \n",
			"line": "255",
			"column": "2",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\service\\password_reset.go",
			"code": "253: \t// 清理验证码\n254: \ts.cache.Delete(ctx, codeKey)\n255: \ts.cache.Delete(ctx, cacheKey)\n",
			"line": "254",
			"column": "2",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\service\\captcha.go",
			"code": "90: \t// 删除验证码（一次性使用）\n91: \ts.cache.Delete(ctx, cacheKey)\n92: \n",
			"line": "91",
			"column": "2",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\service\\captcha.go",
			"code": "69: \tcacheKey := \"captcha:\" + captchaID\n70: \ts.cache.Set(ctx, cacheKey, strings.ToLower(text), captchaTTL, captchaTTL)\n71: \n",
			"line": "70",
			"column": "2",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\monitoring\\slo.go",
			"code": "130: \t\tprometheus.DefaultRegisterer.Register(m.AnomalyDetectedTotal) //nolint:errcheck\n131: \t\tprometheus.DefaultRegisterer.Register(m.ErrorBudgetBurnRate)  //nolint:errcheck\n132: \t\tglobalSLOMetrics = m\n",
			"line": "131",
			"column": "3",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\monitoring\\slo.go",
			"code": "129: \t\tprometheus.DefaultRegisterer.Register(m.AccountLockTotal)     //nolint:errcheck\n130: \t\tprometheus.DefaultRegisterer.Register(m.AnomalyDetectedTotal) //nolint:errcheck\n131: \t\tprometheus.DefaultRegisterer.Register(m.ErrorBudgetBurnRate)  //nolint:errcheck\n",
			"line": "130",
			"column": "3",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\monitoring\\slo.go",
			"code": "128: \t\tprometheus.DefaultRegisterer.Register(m.TokenRefreshTotal)    //nolint:errcheck\n129: \t\tprometheus.DefaultRegisterer.Register(m.AccountLockTotal)     //nolint:errcheck\n130: \t\tprometheus.DefaultRegisterer.Register(m.AnomalyDetectedTotal) //nolint:errcheck\n",
			"line": "129",
			"column": "3",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\monitoring\\slo.go",
			"code": "127: \t\tprometheus.DefaultRegisterer.Register(m.DBConnectionsMax)     //nolint:errcheck\n128: \t\tprometheus.DefaultRegisterer.Register(m.TokenRefreshTotal)    //nolint:errcheck\n129: \t\tprometheus.DefaultRegisterer.Register(m.AccountLockTotal)     //nolint:errcheck\n",
			"line": "128",
			"column": "3",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\monitoring\\slo.go",
			"code": "126: \t\tprometheus.DefaultRegisterer.Register(m.DBConnectionsActive)  //nolint:errcheck\n127: \t\tprometheus.DefaultRegisterer.Register(m.DBConnectionsMax)     //nolint:errcheck\n128: \t\tprometheus.DefaultRegisterer.Register(m.TokenRefreshTotal)    //nolint:errcheck\n",
			"line": "127",
			"column": "3",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\monitoring\\slo.go",
			"code": "125: \t\tprometheus.DefaultRegisterer.Register(m.CacheOperationsTotal) //nolint:errcheck\n126: \t\tprometheus.DefaultRegisterer.Register(m.DBConnectionsActive)  //nolint:errcheck\n127: \t\tprometheus.DefaultRegisterer.Register(m.DBConnectionsMax)     //nolint:errcheck\n",
			"line": "126",
			"column": "3",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\monitoring\\slo.go",
			"code": "124: \t\tprometheus.DefaultRegisterer.Register(m.CacheHitsTotal)       //nolint:errcheck\n125: \t\tprometheus.DefaultRegisterer.Register(m.CacheOperationsTotal) //nolint:errcheck\n126: \t\tprometheus.DefaultRegisterer.Register(m.DBConnectionsActive)  //nolint:errcheck\n",
			"line": "125",
			"column": "3",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\monitoring\\slo.go",
			"code": "123: \t\t// 注册到默认 registry 以便 /metrics 端点暴露\n124: \t\tprometheus.DefaultRegisterer.Register(m.CacheHitsTotal)       //nolint:errcheck\n125: \t\tprometheus.DefaultRegisterer.Register(m.CacheOperationsTotal) //nolint:errcheck\n",
			"line": "124",
			"column": "3",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\monitoring\\metrics.go",
			"code": "136: \t\tprometheus.DefaultRegisterer.Register(m.systemMemoryUsage)        //nolint:errcheck\n137: \t\tprometheus.DefaultRegisterer.Register(m.systemGoroutines)         //nolint:errcheck\n138: \t\tglobalMetrics = m\n",
			"line": "137",
			"column": "3",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\monitoring\\metrics.go",
			"code": "135: \t\tprometheus.DefaultRegisterer.Register(m.activeUsers)              //nolint:errcheck\n136: \t\tprometheus.DefaultRegisterer.Register(m.systemMemoryUsage)        //nolint:errcheck\n137: \t\tprometheus.DefaultRegisterer.Register(m.systemGoroutines)         //nolint:errcheck\n",
			"line": "136",
			"column": "3",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\monitoring\\metrics.go",
			"code": "134: \t\tprometheus.DefaultRegisterer.Register(m.userLogins)               //nolint:errcheck\n135: \t\tprometheus.DefaultRegisterer.Register(m.activeUsers)              //nolint:errcheck\n136: \t\tprometheus.DefaultRegisterer.Register(m.systemMemoryUsage)        //nolint:errcheck\n",
			"line": "135",
			"column": "3",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\monitoring\\metrics.go",
			"code": "133: \t\tprometheus.DefaultRegisterer.Register(m.userRegistrations)        //nolint:errcheck\n134: \t\tprometheus.DefaultRegisterer.Register(m.userLogins)               //nolint:errcheck\n135: \t\tprometheus.DefaultRegisterer.Register(m.activeUsers)              //nolint:errcheck\n",
			"line": "134",
			"column": "3",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\monitoring\\metrics.go",
			"code": "132: \t\tprometheus.DefaultRegisterer.Register(m.dbQueryDuration)          //nolint:errcheck\n133: \t\tprometheus.DefaultRegisterer.Register(m.userRegistrations)        //nolint:errcheck\n134: \t\tprometheus.DefaultRegisterer.Register(m.userLogins)               //nolint:errcheck\n",
			"line": "133",
			"column": "3",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\monitoring\\metrics.go",
			"code": "131: \t\tprometheus.DefaultRegisterer.Register(m.dbQueriesTotal)           //nolint:errcheck\n132: \t\tprometheus.DefaultRegisterer.Register(m.dbQueryDuration)          //nolint:errcheck\n133: \t\tprometheus.DefaultRegisterer.Register(m.userRegistrations)        //nolint:errcheck\n",
			"line": "132",
			"column": "3",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\monitoring\\metrics.go",
			"code": "130: \t\tprometheus.DefaultRegisterer.Register(m.httpRequestDuration)      //nolint:errcheck\n131: \t\tprometheus.DefaultRegisterer.Register(m.dbQueriesTotal)           //nolint:errcheck\n132: \t\tprometheus.DefaultRegisterer.Register(m.dbQueryDuration)          //nolint:errcheck\n",
			"line": "131",
			"column": "3",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\monitoring\\metrics.go",
			"code": "129: \t\tprometheus.DefaultRegisterer.Register(m.httpRequestsTotal)        //nolint:errcheck\n130: \t\tprometheus.DefaultRegisterer.Register(m.httpRequestDuration)      //nolint:errcheck\n131: \t\tprometheus.DefaultRegisterer.Register(m.dbQueriesTotal)           //nolint:errcheck\n",
			"line": "130",
			"column": "3",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\monitoring\\metrics.go",
			"code": "128: \t\t// 将私有 registry 的指标也注册到默认 registry\n129: \t\tprometheus.DefaultRegisterer.Register(m.httpRequestsTotal)        //nolint:errcheck\n130: \t\tprometheus.DefaultRegisterer.Register(m.httpRequestDuration)      //nolint:errcheck\n",
			"line": "129",
			"column": "3",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\auth\\cas.go",
			"code": "118: \t\t\t\tvar userID int64\n119: \t\t\t\tfmt.Sscanf(userIDStr, \"%d\", \u0026userID)\n120: \t\t\t\tresp.UserID = userID\n",
			"line": "119",
			"column": "5",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\api\\middleware\\response_wrapper.go",
			"code": "118: \t\twrapper.ResponseWriter.WriteHeader(wrapper.statusCode)\n119: \t\twrapper.ResponseWriter.Write(wrappedBytes)\n120: \t}\n",
			"line": "119",
			"column": "3",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\api\\middleware\\response_wrapper.go",
			"code": "111: \t\t\twrapper.ResponseWriter.WriteHeader(wrapper.statusCode)\n112: \t\t\twrapper.ResponseWriter.Write(bodyBytes)\n113: \t\t\treturn\n",
			"line": "112",
			"column": "4",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\api\\middleware\\response_wrapper.go",
			"code": "96: \t\t\t\twrapper.ResponseWriter.WriteHeader(wrapper.statusCode)\n97: \t\t\t\twrapper.ResponseWriter.Write(bodyBytes)\n98: \t\t\t\treturn\n",
			"line": "97",
			"column": "5",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\api\\middleware\\response_wrapper.go",
			"code": "86: \t\t\twrapper.ResponseWriter.WriteHeader(wrapper.statusCode)\n87: \t\t\twrapper.ResponseWriter.Write(bodyBytes)\n88: \t\t\treturn\n",
			"line": "87",
			"column": "4",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\api\\middleware\\response_wrapper.go",
			"code": "69: \t\t\twrapper.ResponseWriter.WriteHeader(wrapper.statusCode)\n70: \t\t\twrapper.ResponseWriter.Write(wrapper.body.Bytes())\n71: \t\t\treturn\n",
			"line": "70",
			"column": "4",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\api\\middleware\\response_wrapper.go",
			"code": "61: \t\t\twrapper.ResponseWriter.WriteHeader(wrapper.statusCode)\n62: \t\t\twrapper.ResponseWriter.Write(wrapper.body.Bytes())\n63: \t\t\treturn\n",
			"line": "62",
			"column": "4",
			"nosec": false,
			"suppressions": null
		},
		{
			"severity": "LOW",
			"confidence": "HIGH",
			"cwe": {
				"id": "703",
				"url": "https://cwe.mitre.org/data/definitions/703.html"
			},
			"rule_id": "G104",
			"details": "Errors unhandled",
			"file": "D:\\project\\internal\\api\\handler\\sso_handler.go",
			"code": "244: \n245: \th.ssoManager.RevokeToken(req.Token)\n246: \n",
			"line": "245",
			"column": "2",
			"nosec": false,
			"suppressions": null
		}
	],
	"Stats": {
		"files": 177,
		"lines": 36807,
		"nosec": 0,
		"found": 90
	},
	"GosecVersion": "dev"
}