129 lines
2.8 KiB
Go
129 lines
2.8 KiB
Go
package apps
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/iwind/TeaGo/maps"
|
|
)
|
|
|
|
func mockApps() []maps.Map {
|
|
return []maps.Map{
|
|
{
|
|
"id": int64(1),
|
|
"name": "主站移动业务",
|
|
"appId": "ab12xc34s2",
|
|
"clusterId": int64(1),
|
|
"domainCount": 3,
|
|
"isOn": true,
|
|
"authStatus": "enabled",
|
|
"ecsMode": "auto",
|
|
"pinningMode": "report",
|
|
"sanMode": "strict",
|
|
"riskLevel": "medium",
|
|
"riskSummary": "Pinning 处于观察模式",
|
|
"secretVersion": "v2026.02.20",
|
|
},
|
|
{
|
|
"id": int64(2),
|
|
"name": "视频网关业务",
|
|
"appId": "vd8992ksm1",
|
|
"clusterId": int64(2),
|
|
"domainCount": 1,
|
|
"isOn": true,
|
|
"authStatus": "enabled",
|
|
"ecsMode": "custom",
|
|
"pinningMode": "enforce",
|
|
"sanMode": "strict",
|
|
"riskLevel": "low",
|
|
"riskSummary": "已启用强校验",
|
|
"secretVersion": "v2026.02.18",
|
|
},
|
|
{
|
|
"id": int64(3),
|
|
"name": "海外灰度测试",
|
|
"appId": "ov7711hkq9",
|
|
"clusterId": int64(1),
|
|
"domainCount": 2,
|
|
"isOn": false,
|
|
"authStatus": "disabled",
|
|
"ecsMode": "off",
|
|
"pinningMode": "off",
|
|
"sanMode": "report",
|
|
"riskLevel": "high",
|
|
"riskSummary": "应用关闭且证书策略偏弱",
|
|
"secretVersion": "v2026.01.30",
|
|
},
|
|
}
|
|
}
|
|
|
|
func filterApps(keyword string, riskLevel string, ecsMode string, pinningMode string) []maps.Map {
|
|
all := mockApps()
|
|
if len(keyword) == 0 && len(riskLevel) == 0 && len(ecsMode) == 0 && len(pinningMode) == 0 {
|
|
return all
|
|
}
|
|
|
|
keyword = strings.ToLower(strings.TrimSpace(keyword))
|
|
result := make([]maps.Map, 0)
|
|
for _, app := range all {
|
|
if len(keyword) > 0 {
|
|
name := strings.ToLower(app.GetString("name"))
|
|
appID := strings.ToLower(app.GetString("appId"))
|
|
if !strings.Contains(name, keyword) && !strings.Contains(appID, keyword) {
|
|
continue
|
|
}
|
|
}
|
|
if len(riskLevel) > 0 && app.GetString("riskLevel") != riskLevel {
|
|
continue
|
|
}
|
|
if len(ecsMode) > 0 && app.GetString("ecsMode") != ecsMode {
|
|
continue
|
|
}
|
|
if len(pinningMode) > 0 && app.GetString("pinningMode") != pinningMode {
|
|
continue
|
|
}
|
|
result = append(result, app)
|
|
}
|
|
|
|
return result
|
|
}
|
|
|
|
func pickApp(appID int64) maps.Map {
|
|
apps := mockApps()
|
|
if appID <= 0 {
|
|
return apps[0]
|
|
}
|
|
for _, app := range apps {
|
|
if app.GetInt64("id") == appID {
|
|
return app
|
|
}
|
|
}
|
|
return apps[0]
|
|
}
|
|
|
|
func mockDomains(appID int64) []maps.Map {
|
|
_ = appID
|
|
return []maps.Map{
|
|
{
|
|
"id": int64(101),
|
|
"name": "api.business.com",
|
|
},
|
|
{
|
|
"id": int64(102),
|
|
"name": "payment.business.com",
|
|
},
|
|
}
|
|
}
|
|
|
|
func pickDomain(domainID int64) maps.Map {
|
|
domains := mockDomains(0)
|
|
if domainID <= 0 {
|
|
return domains[0]
|
|
}
|
|
for _, domain := range domains {
|
|
if domain.GetInt64("id") == domainID {
|
|
return domain
|
|
}
|
|
}
|
|
return domains[0]
|
|
}
|