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) SetSFTPPanel(on bool)
- func (s *Server) SetSFTPPanelWrite(on bool)
- func (s *Server) SetSSHEndpoint(host string, port int)
- func (s *Server) SetSyncDefaults(d groupsync.Settings)
- func (s *Server) SetTOTPLimits(window time.Duration, max int, lockFor time.Duration)
- func (s *Server) SetTrustedProxies(cidrs []string) error
- func (s *Server) UseArchive(dest config.ArchiveConfig, hostSecret string)
- func (s *Server) UseDiscovery(svc *discover.Service)
- func (s *Server) UseEventBus(b *events.Bus)
- func (s *Server) UseGroupSource(src auth.GroupSource)
- func (s *Server) UseJIT(svc *jit.Service)
- func (s *Server) UseLiveSessions(l *proxy.Live)
- func (s *Server) UseManagement(authority *ca.CA)
- 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 ¶
func (*Server) SetSFTPPanel ¶ added in v1.2.0
SetSFTPPanel, panelin dosya tarayıcısını açar/kapatır.
func (*Server) SetSFTPPanelWrite ¶ added in v1.2.0
SetSFTPPanelWrite, panelden yüklemeyi açar. SetSFTPPanel ile VE'li olduğu varsayılıyor: çağıran (serve.go) ikisini birlikte hesaplıyor.
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) SetTOTPLimits ¶ added in v1.2.0
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ı.
SetTOTPLimits, kod isteminin süresini ve kilit eşiğini kurar. *
⚠️ SIFIR "KAPALI" DEMEK, "HEMEN" DEĞİL. window 0 ise istem hiç
zamanaşımına uğramıyor; max 0 ise kilit kurulmuyor (sayaç yine
tutuluyor). Sıfırı "anında kilitle" saymak, yapılandırmayı boş
bırakan bir operatörün kurulumunu kilitlerdi.
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) UseDiscovery ¶ added in v1.2.0
UseDiscovery, keşif hizmetini bağlar. Dinlemeye başlamadan ÖNCE.
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) UseJIT ¶ added in v1.2.0
UseJIT, geçici erişim hizmetini bağlar. Dinlemeye başlamadan ÖNCE.
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) UseManagement ¶ added in v1.2.0
* UseManagement, panelin yönetim bağlantısı kurabilmesini açar; yalnızca * manage.enabled ile çağrılmalı. Dinlemeye başlamadan ÖNCE: alan kilitsiz. * * ⚠️ SINIRLAYICI BURADA KURULUYOR, New'DE DEĞİL — ÖLÇÜLDÜ. İlk hâli yuvayı * New'de açıyordu; New'i atlayan bir kurulumda (testlerin hepsi böyle) * kanal nil kaldı, nil kanala gönderim select'te hiç seçilmedi ve her * denetim "başka bir denetim sürüyor" diye 429 döndü. Özelliği açan çağrı * onun sınırını da getiriyor: biri olmadan öbürü olamaz.
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
- discovery.go
- events.go
- federation.go
- filehistory.go
- health.go
- jit.go
- locallogin.go
- manage.go
- mykeys.go
- oidcsettings.go
- password.go
- pending.go
- recording.go
- rolesudo.go
- server.go
- setup.go
- spa.go
- storage.go
- targets.go
- terminal.go
- terminate.go
- totp.go
- totpprompt.go
- trustedproxy.go
- userdetail.go
- verify.go
- webauthn.go
- webauthnlogin.go
- webauthnroutes.go
- weblogin.go
- wschannel.go