server: 平台抽象层+bilibili、服务端加密凭据库、角色中间件;web: 精简页面/路由、macOS 客户端(Swift)与多份方案文档;移除误入库的编译产物
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
package credentials
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestStoreRoundTripAndIsolation(t *testing.T) {
|
||||
root := t.TempDir()
|
||||
s, err := Open(root)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
secret := []byte(`{"cookies":"SESSDATA=secret"}`)
|
||||
if err = s.Save(7, 11, secret); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
got, err := s.Load(7, 11)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if string(got) != string(secret) {
|
||||
t.Fatalf("round trip mismatch: %q", got)
|
||||
}
|
||||
if _, err = s.Load(8, 11); !os.IsNotExist(err) {
|
||||
t.Fatalf("workspace isolation failed: %v", err)
|
||||
}
|
||||
raw, err := os.ReadFile(filepath.Join(root, "7", "11.enc"))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if string(raw) == string(secret) {
|
||||
t.Fatal("credential file is plaintext")
|
||||
}
|
||||
if err = s.Delete(7, 11); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestStoreRejectsInvalidIDs(t *testing.T) {
|
||||
s, err := Open(t.TempDir())
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err = s.Save(0, 1, []byte("x")); err == nil {
|
||||
t.Fatal("expected invalid ID error")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user