httpapi

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 3, 2026 License: Apache-2.0 Imports: 39 Imported by: 0

Documentation

Overview

Package httpapi serves postern's web endpoints: the OIDC callback and login confirmation now (S3.3), the web terminal later (S4).

Index

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 New

func New(o *auth.OIDCHolder, logins *auth.Logins, db *store.Store, logger *slog.Logger) *Server

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

func (s *Server) EnableTerminal(deps proxy.Deps, externalURL string)

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

func (s *Server) Handler() http.Handler

Handler, yönlendirme tablosu. Metod kısıtları desenin içinde ("GET /x"): yanlış metod otomatik 405 alır.

func (*Server) SetExternalURL

func (s *Server) SetExternalURL(raw string)

func (*Server) SetPublicKeyLogin

func (s *Server) SetPublicKeyLogin(on bool)

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

func (s *Server) SetSSHEndpoint(host string, port int)

SetSSHEndpoint, panelin göstereceği ssh adresini bildirir. Dinlemeye başlamadan ÖNCE çağrılmalı: alan kilitsiz.

func (*Server) SetSyncDefaults

func (s *Server) SetSyncDefaults(d groupsync.Settings)

SetSyncDefaults, YAML'dan gelen senkronizasyon varsayılanlarını bildirir.

func (*Server) SetTrustedProxies

func (s *Server) SetTrustedProxies(cidrs []string) error

* 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

func (s *Server) UseEventBus(b *events.Bus)

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

func (s *Server) UseLiveSessions(l *proxy.Live)

UseLiveSessions, akan oturum defterini bildirir; kesme uçları buradan çalışıyor. Dinlemeye başlamadan ÖNCE çağrılmalı: alan kilitsiz.

func (*Server) UseRecordings

func (s *Server) UseRecordings(rec *record.Store)

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).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL