88 lines
1.8 KiB
Go
88 lines
1.8 KiB
Go
package token_test
|
|
|
|
import "testing"
|
|
|
|
type auditTemplateCase struct {
|
|
ID string
|
|
Name string
|
|
TriggerCase string
|
|
Assertions []string
|
|
}
|
|
|
|
func TestTokenAuditTemplateCases(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
cases := []auditTemplateCase{
|
|
{
|
|
ID: "TOK-AUD-001",
|
|
Name: "签发成功事件",
|
|
TriggerCase: "TOK-LIFE-001",
|
|
Assertions: []string{
|
|
"存在 token.issue.success",
|
|
"event_id/request_id/result_code/route/created_at 齐全",
|
|
},
|
|
},
|
|
{
|
|
ID: "TOK-AUD-002",
|
|
Name: "签发失败事件",
|
|
TriggerCase: "TOK-LIFE-002",
|
|
Assertions: []string{
|
|
"存在 token.issue.fail",
|
|
"result_code 准确",
|
|
},
|
|
},
|
|
{
|
|
ID: "TOK-AUD-003",
|
|
Name: "鉴权失败事件",
|
|
TriggerCase: "无效 token 访问受保护接口",
|
|
Assertions: []string{
|
|
"存在 token.authn.fail",
|
|
"包含 request_id",
|
|
},
|
|
},
|
|
{
|
|
ID: "TOK-AUD-004",
|
|
Name: "越权事件",
|
|
TriggerCase: "TOK-LIFE-008",
|
|
Assertions: []string{
|
|
"存在 token.authz.denied",
|
|
"包含 subject_id",
|
|
},
|
|
},
|
|
{
|
|
ID: "TOK-AUD-005",
|
|
Name: "吊销事件",
|
|
TriggerCase: "TOK-LIFE-005",
|
|
Assertions: []string{
|
|
"存在 token.revoke.success",
|
|
"包含 token_id",
|
|
},
|
|
},
|
|
{
|
|
ID: "TOK-AUD-006",
|
|
Name: "query key 拒绝事件",
|
|
TriggerCase: "query key 访问受保护接口",
|
|
Assertions: []string{
|
|
"存在 token.query_key.rejected",
|
|
"不含敏感值",
|
|
},
|
|
},
|
|
{
|
|
ID: "TOK-AUD-007",
|
|
Name: "事件不可篡改",
|
|
TriggerCase: "重复读取同 event_id",
|
|
Assertions: []string{
|
|
"核心字段不可变",
|
|
"时间顺序正确",
|
|
},
|
|
},
|
|
}
|
|
|
|
for _, tc := range cases {
|
|
tc := tc
|
|
t.Run(tc.ID, func(t *testing.T) {
|
|
t.Skipf("模板用例,待接入实现: %s", tc.Name)
|
|
})
|
|
}
|
|
}
|