diff options
| author | Chris Lu <chris.lu@gmail.com> | 2013-08-13 09:31:19 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2013-08-13 09:31:19 -0700 |
| commit | e45c6b5e21d7aca626982ae1967816c4b9dc6854 (patch) | |
| tree | 184d119d2e139b5b89bbe993e3728839f422e39f /go/weed/weed.go | |
| parent | 3572e1140eeba570388e34a96761ee6cb62b60c9 (diff) | |
| download | seaweedfs-e45c6b5e21d7aca626982ae1967816c4b9dc6854.tar.xz seaweedfs-e45c6b5e21d7aca626982ae1967816c4b9dc6854.zip | |
add white list to both master and volume servers
prepare for v0.41
Diffstat (limited to 'go/weed/weed.go')
| -rw-r--r-- | go/weed/weed.go | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/go/weed/weed.go b/go/weed/weed.go index 57fe62281..dc74b7650 100644 --- a/go/weed/weed.go +++ b/go/weed/weed.go @@ -7,6 +7,7 @@ import ( "fmt" "io" "math/rand" + "net" "net/http" "os" "strings" @@ -223,3 +224,21 @@ func debug(params ...interface{}) { glog.V(0).Infoln(params) } } +func secure(whiteList []string, f func(w http.ResponseWriter, r *http.Request)) func(w http.ResponseWriter, r *http.Request) { + return func(w http.ResponseWriter, r *http.Request) { + if len(whiteList) == 0 { + f(w, r) + return + } + host, _, err := net.SplitHostPort(r.RemoteAddr) + if err == nil { + for _, ip := range whiteList { + if ip == host { + f(w, r) + return + } + } + } + writeJsonQuiet(w, r, map[string]interface{}{"error": "No write permisson from " + host}) + } +} |
