fix: bridge panel admin authorization

This commit is contained in:
kory
2026-10-02 13:36:25 +08:00
parent 556870b594
commit 9fbb2bd80a
3 changed files with 12 additions and 8 deletions
+10 -6
View File
@@ -24,14 +24,15 @@ type Runner interface {
}
type Panel struct {
Password string
Runner Runner
mu sync.RWMutex
sessions map[string]time.Time
Password string
AdminToken string
Runner Runner
mu sync.RWMutex
sessions map[string]time.Time
}
func New(password string, runner Runner) *Panel {
return &Panel{Password: password, Runner: runner, sessions: make(map[string]time.Time)}
func New(password, adminToken string, runner Runner) *Panel {
return &Panel{Password: password, AdminToken: adminToken, Runner: runner, sessions: make(map[string]time.Time)}
}
func (p *Panel) Handler() http.Handler {
@@ -110,6 +111,9 @@ func (p *Panel) securitySettings(w http.ResponseWriter, r *http.Request) {
http.Error(w, "security API unavailable", 501)
}
func (p *Panel) updateSecuritySettings(w http.ResponseWriter, r *http.Request) {
if p.AdminToken != "" {
r.Header.Set("X-Admin-Token", p.AdminToken)
}
if v, ok := p.Runner.(securityPanelRunner); ok {
v.UpdateSecuritySettingsJSON(w, r)
return
+1 -1
View File
@@ -16,7 +16,7 @@ func (testRunner) RotateAPIKey(w http.ResponseWriter, r *http.Request) {}
func (testRunner) DeleteDevice(w http.ResponseWriter, r *http.Request) {}
func TestStaticCSSContentType(t *testing.T) {
p := New("test-password", testRunner{})
p := New("test-password", "admin", testRunner{})
req := httptest.NewRequest("GET", "/static/app.css", nil)
rec := httptest.NewRecorder()