Documentation
¶
Overview ¶
Package httpapi serves postern's web endpoints: the OIDC callback and login confirmation now (S3.3), the web terminal later (S4).
Index ¶
- type Server
- func (s *Server) BeginShutdown()
- func (s *Server) EnableTerminal(deps proxy.Deps, externalURL string)
- func (s *Server) Handler() http.Handler
- func (s *Server) SetExternalURL(raw string)
- func (s *Server) SetPublicKeyLogin(on bool)
- func (s *Server) SetSSHEndpoint(host string, port int)
- func (s *Server) SetSyncDefaults(d groupsync.Settings)
- func (s *Server) SetTrustedProxies(cidrs []string) error
- func (s *Server) UseArchive(dest config.ArchiveConfig, hostSecret string)
- func (s *Server) UseEventBus(b *events.Bus)
- func (s *Server) UseGroupSource(src auth.GroupSource)
- func (s *Server) UseLiveSessions(l *proxy.Live)
- func (s *Server) UseRecordings(rec *record.Store)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server, HTTP uçlarını taşır. TLS/dinleme çağıranın işi (serve kuruyor); burada yalnızca yönlendirme ve handler'lar var.
func (*Server) BeginShutdown ¶
func (s *Server) BeginShutdown()
* BeginShutdown, uzun ömürlü işleyicilere kapanışın başladığını söyler. * * http.Server.Shutdown'dan ÖNCE çağrılmalı: sıra tersine dönerse * Shutdown, henüz durması söylenmemiş akışları beklemeye başlar. * * Birden çok kez çağrılabilir (closeOnce): kapanış yolları iç içe * geçebiliyor ve kapalı bir kanalı ikinci kez kapatmak panik olurdu.
func (*Server) EnableTerminal ¶
EnableTerminal, web terminalini açar. serve yalnızca http.terminal_enabled true iken çağırır; çağrılmazsa /api/terminal rotası var olmaz (404), yalnızca yetkisiz olmaz.
func (*Server) Handler ¶
Handler, yönlendirme tablosu. Metod kısıtları desenin içinde ("GET /x"): yanlış metod otomatik 405 alır.
func (*Server) SetExternalURL ¶
func (*Server) SetPublicKeyLogin ¶
SetExternalURL, kullanıcının tarayıcısından görülen kök adresi verir.
Çerezin Secure bayrağı BURADAN türetiliyor, r.TLS'ten değil: postern TLS'i sonlandıran bir ters vekilin arkasındaysa r.TLS nil olur ama bağlantı HTTPS'tir. r.TLS'e bakan kod o kurulumda oturum çerezini Secure'suz yazar — yani düz metin bir isteğe iliştirilebilir hâle getirir. Dış adresin şeması dağıtımın gerçeğini söyleyen tek kaynak.
- SetPublicKeyLogin, anahtar girişinin açık olup olmadığını bildirir. *
- Panelin anahtar yönetimi ekranı buna bakıyor — ama ASIL KORUMA UÇTA
- (adminAddKey/adminRemoveKey). Arayüzde gizlemek bir yetki kontrolü
- değil, yalnızca nezaket: uç açık kaldığı sürece curl ile anahtar
- eklenebilirdi ve kapalı sanılan kapı açık kalırdı.
func (*Server) SetSSHEndpoint ¶
SetSSHEndpoint, panelin göstereceği ssh adresini bildirir. Dinlemeye başlamadan ÖNCE çağrılmalı: alan kilitsiz.
func (*Server) SetSyncDefaults ¶
SetSyncDefaults, YAML'dan gelen senkronizasyon varsayılanlarını bildirir.
func (*Server) SetTrustedProxies ¶
* SetTrustedProxies, X-Forwarded-For'una güvenilecek kaynakları bildirir. * Dinlemeye başlamadan ÖNCE çağrılmalı: alan kilitsiz. * * Hata döndürüyor ve çağıran BAŞLAMAYI KESMELİ: bozuk bir CIDR'ı * yok saymak, operatörün "vekilimi tanıttım" sandığı ama tanıtmadığı * bir kurulum üretirdi — kilidin geri geldiği hâl (bkz. trustedproxy.go).
func (*Server) UseArchive ¶
func (s *Server) UseArchive(dest config.ArchiveConfig, hostSecret string)
* UseArchive, arşiv hedefini ve host sırrının varlığını bildirir. * * ⚠️ SIRRIN KENDİSİ DEĞİL, VARLIĞI önemli: panel yalnızca "buradan * değiştirilebilir mi" sorusunu cevaplıyor. Değeri httpapi'ye taşımak, * onu bir daha gerekmeyecek bir yerde tutmak olurdu.
func (*Server) UseEventBus ¶
UseEventBus, canlı olay akışını açar.
Çağrılmazsa /api/admin/events rotası HİÇ kurulmaz — kapalı özellik, kapalı yüzey. Panel de akışı açamayınca "live" yerine "polling" diyor, sessizce boş bir akış göstermiyor.
func (*Server) UseGroupSource ¶
func (s *Server) UseGroupSource(src auth.GroupSource)
UseGroupSource, grup kaynağını değiştirir (LDAP için).
Dinlemeye başlamadan ÖNCE çağrılmalı: alan kilitsiz.
func (*Server) UseLiveSessions ¶
UseLiveSessions, akan oturum defterini bildirir; kesme uçları buradan çalışıyor. Dinlemeye başlamadan ÖNCE çağrılmalı: alan kilitsiz.
func (*Server) UseRecordings ¶
UseRecordings, kayıt deposunu bağlar ve kayıt uçlarını açar.
Çağrılmazsa rotalar HİÇ KURULMAZ — kapalı özellik, kapalı yüzey. Web terminalindeki aynı kalıp (bkz. EnableTerminal).
Source Files
¶
- admin.go
- adminGroup.go
- archivesettings.go
- authsource.go
- backoff.go
- directorylogin.go
- events.go
- federation.go
- filehistory.go
- health.go
- locallogin.go
- mykeys.go
- oidcsettings.go
- password.go
- pending.go
- recording.go
- server.go
- setup.go
- spa.go
- storage.go
- targets.go
- terminal.go
- terminate.go
- totp.go
- trustedproxy.go
- userdetail.go
- weblogin.go
- wschannel.go