reverse proxy mode
This commit is contained in:
parent
414b5a8015
commit
584513de9b
@ -8,6 +8,7 @@ import (
|
|||||||
type WebSocket struct {
|
type WebSocket struct {
|
||||||
Password string
|
Password string
|
||||||
AdminPassword string
|
AdminPassword string
|
||||||
|
Proxy bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func (WebSocket) Init(cmd *cobra.Command) error {
|
func (WebSocket) Init(cmd *cobra.Command) error {
|
||||||
@ -21,10 +22,16 @@ func (WebSocket) Init(cmd *cobra.Command) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cmd.PersistentFlags().Bool("proxy", false, "enable reverse proxy mode")
|
||||||
|
if err := viper.BindPFlag("proxy", cmd.PersistentFlags().Lookup("proxy")); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *WebSocket) Set() {
|
func (s *WebSocket) Set() {
|
||||||
s.Password = viper.GetString("password")
|
s.Password = viper.GetString("password")
|
||||||
s.AdminPassword = viper.GetString("password_admin")
|
s.AdminPassword = viper.GetString("password_admin")
|
||||||
|
s.Proxy = viper.GetBool("proxy")
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,7 @@ func (ws *WebSocketHandler) Start() error {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
ws.sessions.OnDestroy(func(id string) {
|
ws.sessions.OnDestroy(func(id string, session types.Session) {
|
||||||
if err := ws.handler.SessionDestroyed(id); err != nil {
|
if err := ws.handler.SessionDestroyed(id); err != nil {
|
||||||
ws.logger.Warn().Str("id", id).Err(err).Msg("session destroyed with and error")
|
ws.logger.Warn().Str("id", id).Err(err).Msg("session destroyed with and error")
|
||||||
} else {
|
} else {
|
||||||
@ -191,7 +191,11 @@ func (ws *WebSocketHandler) Upgrade(w http.ResponseWriter, r *http.Request) erro
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (ws *WebSocketHandler) authenticate(r *http.Request) (string, string, bool, error) {
|
func (ws *WebSocketHandler) authenticate(r *http.Request) (string, string, bool, error) {
|
||||||
ip := utils.ReadUserIP(r)
|
ip := r.RemoteAddr
|
||||||
|
|
||||||
|
if ws.conf.Proxy {
|
||||||
|
ip = utils.ReadUserIP(r)
|
||||||
|
}
|
||||||
|
|
||||||
id, err := utils.NewUID(32)
|
id, err := utils.NewUID(32)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Reference in New Issue
Block a user