Added basic authentication in debug/vars

Using a simple http auth middleware.
https://github.com/goji/httpauth
This commit is contained in:
claudemiro
2015-01-13 08:01:02 -03:00
parent be66978479
commit 0aec168ab3
3 changed files with 14 additions and 4 deletions
+2
View File
@@ -1,6 +1,8 @@
{
"Host": ":8080",
"Expvar": true,
"User": "Username",
"Password": "123456",
"Apps": [
{
"ApplicationDisabled": false,
+5 -3
View File
@@ -8,9 +8,11 @@ import "errors"
// The config file
type ConfigFile struct {
Host string // The host, eg: :8080 will start on 0.0.0.0:8080
Expvar bool
Apps []*App
Host string // The host, eg: :8080 will start on 0.0.0.0:8080
Expvar bool
User string
Password string
Apps []*App
}
// Error for App not found
+7 -1
View File
@@ -8,7 +8,9 @@ import (
_ "expvar"
"net/http"
"os"
"strings"
"github.com/goji/httpauth"
"github.com/gorilla/handlers"
"github.com/gorilla/mux"
)
@@ -19,7 +21,11 @@ func NewRouter() *mux.Router {
router := mux.NewRouter().StrictSlash(true)
if Conf.Expvar {
router.Handle("/debug/vars", http.DefaultServeMux)
if len(strings.TrimSpace(Conf.User)) == 0 || len(strings.TrimSpace(Conf.Password)) == 0 {
panic("Your are exporting debug variables and you are not defining an User and a Password")
}
router.Handle("/debug/vars", httpauth.SimpleBasicAuth(Conf.User, Conf.Password)(http.DefaultServeMux))
}
for _, route := range routes {