mirror of
https://github.com/pushbits/server.git
synced 2025-04-29 02:07:38 +02:00
Merge pull request #54 from pushbits/trustedproxies
Add support for setting trusted proxies
This commit is contained in:
commit
db3f669c5f
4 changed files with 22 additions and 5 deletions
|
@ -82,7 +82,10 @@ func main() {
|
|||
log.L.Fatal(err)
|
||||
}
|
||||
|
||||
engine := router.Create(c.Debug, cm, db, dp, &c.Alertmanager)
|
||||
engine, err := router.Create(c.Debug, c.HTTP.TrustedProxies, cm, db, dp, &c.Alertmanager)
|
||||
if err != nil {
|
||||
log.L.Fatal(err)
|
||||
}
|
||||
|
||||
err = runner.Run(engine, c.HTTP.ListenAddress, c.HTTP.Port)
|
||||
if err != nil {
|
||||
|
|
|
@ -13,6 +13,9 @@ http:
|
|||
# The port to listen on.
|
||||
port: 8080
|
||||
|
||||
# What proxies to trust.
|
||||
trustedproxies: []
|
||||
|
||||
database:
|
||||
# Currently sqlite3 and mysql are supported.
|
||||
dialect: 'sqlite3'
|
||||
|
|
|
@ -43,8 +43,9 @@ type Alertmanager struct {
|
|||
type Configuration struct {
|
||||
Debug bool `default:"false"`
|
||||
HTTP struct {
|
||||
ListenAddress string `default:""`
|
||||
Port int `default:"8080"`
|
||||
ListenAddress string `default:""`
|
||||
Port int `default:"8080"`
|
||||
TrustedProxies []string `default:"[]"`
|
||||
}
|
||||
Database struct {
|
||||
Dialect string `default:"sqlite3"`
|
||||
|
|
|
@ -15,7 +15,7 @@ import (
|
|||
)
|
||||
|
||||
// Create a Gin engine and setup all routes.
|
||||
func Create(debug bool, cm *credentials.Manager, db *database.Database, dp *dispatcher.Dispatcher, alertmanagerConfig *configuration.Alertmanager) *gin.Engine {
|
||||
func Create(debug bool, trustedProxies []string, cm *credentials.Manager, db *database.Database, dp *dispatcher.Dispatcher, alertmanagerConfig *configuration.Alertmanager) (*gin.Engine, error) {
|
||||
log.L.Println("Setting up HTTP routes.")
|
||||
|
||||
if !debug {
|
||||
|
@ -36,6 +36,16 @@ func Create(debug bool, cm *credentials.Manager, db *database.Database, dp *disp
|
|||
r := gin.New()
|
||||
r.Use(log.GinLogger(log.L), gin.Recovery())
|
||||
|
||||
var err error
|
||||
if len(trustedProxies) > 0 {
|
||||
err = r.SetTrustedProxies(trustedProxies)
|
||||
} else {
|
||||
err = r.SetTrustedProxies(nil)
|
||||
}
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
r.Use(location.Default())
|
||||
|
||||
applicationGroup := r.Group("/application")
|
||||
|
@ -67,5 +77,5 @@ func Create(debug bool, cm *credentials.Manager, db *database.Database, dp *disp
|
|||
|
||||
r.POST("/alert", auth.RequireApplicationToken(), alertmanagerHandler.CreateAlert)
|
||||
|
||||
return r
|
||||
return r, nil
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue