diff options
| author | Mike Tolman <mike.tolman@fidelissecurity.com> | 2016-08-05 15:23:43 -0600 |
|---|---|---|
| committer | Mike Tolman <mike.tolman@fidelissecurity.com> | 2016-08-05 15:23:43 -0600 |
| commit | 34837afc7adb8ea6955d5cf962af10f8f30fb476 (patch) | |
| tree | 85897ce8c9d2ebd1a5226d74bcc54e7c8fe46d88 /weed/server/master_server.go | |
| parent | 14d4252904ed0fad8a7d6d6156a70fcbc3eda12c (diff) | |
| download | seaweedfs-34837afc7adb8ea6955d5cf962af10f8f30fb476.tar.xz seaweedfs-34837afc7adb8ea6955d5cf962af10f8f30fb476.zip | |
Adding HTTP verb whitelisting options.
Diffstat (limited to 'weed/server/master_server.go')
| -rw-r--r-- | weed/server/master_server.go | 40 |
1 files changed, 22 insertions, 18 deletions
diff --git a/weed/server/master_server.go b/weed/server/master_server.go index 61bda6988..3bd77c819 100644 --- a/weed/server/master_server.go +++ b/weed/server/master_server.go @@ -23,7 +23,8 @@ type MasterServer struct { pulseSeconds int defaultReplicaPlacement string garbageThreshold string - guard *security.Guard + read_guard *security.Guard + write_guard *security.Guard Topo *topology.Topology vg *topology.VolumeGrowth @@ -38,7 +39,9 @@ func NewMasterServer(r *mux.Router, port int, metaFolder string, confFile string, defaultReplicaPlacement string, garbageThreshold string, - whiteList []string, + ipReadWhiteList []string, + ipWriteWhiteList []string, + rootWhiteList []string, secureKey string, ) *MasterServer { ms := &MasterServer{ @@ -58,24 +61,25 @@ func NewMasterServer(r *mux.Router, port int, metaFolder string, ms.vg = topology.NewDefaultVolumeGrowth() glog.V(0).Infoln("Volume Size Limit is", volumeSizeLimitMB, "MB") - ms.guard = security.NewGuard(whiteList, secureKey) + ms.read_guard = security.NewGuard(ipReadWhiteList, rootWhiteList, secureKey) + ms.write_guard = security.NewGuard(ipWriteWhiteList, rootWhiteList, secureKey) r.HandleFunc("/", ms.uiStatusHandler) - r.HandleFunc("/ui/index.html", ms.uiStatusHandler) - r.HandleFunc("/dir/assign", ms.proxyToLeader(ms.guard.WhiteList(ms.dirAssignHandler))) - r.HandleFunc("/dir/lookup", ms.proxyToLeader(ms.guard.WhiteList(ms.dirLookupHandler))) - r.HandleFunc("/dir/join", ms.proxyToLeader(ms.guard.WhiteList(ms.dirJoinHandler))) - r.HandleFunc("/dir/status", ms.proxyToLeader(ms.guard.WhiteList(ms.dirStatusHandler))) - r.HandleFunc("/col/delete", ms.proxyToLeader(ms.guard.WhiteList(ms.collectionDeleteHandler))) - r.HandleFunc("/vol/lookup", ms.proxyToLeader(ms.guard.WhiteList(ms.volumeLookupHandler))) - r.HandleFunc("/vol/grow", ms.proxyToLeader(ms.guard.WhiteList(ms.volumeGrowHandler))) - r.HandleFunc("/vol/status", ms.proxyToLeader(ms.guard.WhiteList(ms.volumeStatusHandler))) - r.HandleFunc("/vol/vacuum", ms.proxyToLeader(ms.guard.WhiteList(ms.volumeVacuumHandler))) - r.HandleFunc("/submit", ms.guard.WhiteList(ms.submitFromMasterServerHandler)) - r.HandleFunc("/delete", ms.guard.WhiteList(ms.deleteFromMasterServerHandler)) - r.HandleFunc("/{fileId}", ms.proxyToLeader(ms.redirectHandler)) - r.HandleFunc("/stats/counter", ms.guard.WhiteList(statsCounterHandler)) - r.HandleFunc("/stats/memory", ms.guard.WhiteList(statsMemoryHandler)) + r.HandleFunc("/ui/index.html", ms.read_guard.WhiteList(ms.uiStatusHandler)) + r.HandleFunc("/dir/assign", ms.proxyToLeader(ms.write_guard.WhiteList(ms.dirAssignHandler))) + r.HandleFunc("/dir/lookup", ms.proxyToLeader(ms.read_guard.WhiteList(ms.dirLookupHandler))) + r.HandleFunc("/dir/join", ms.proxyToLeader(ms.write_guard.WhiteList(ms.dirJoinHandler))) + r.HandleFunc("/dir/status", ms.proxyToLeader(ms.read_guard.WhiteList(ms.dirStatusHandler))) + r.HandleFunc("/col/delete", ms.proxyToLeader(ms.write_guard.WhiteList(ms.collectionDeleteHandler))) + r.HandleFunc("/vol/lookup", ms.proxyToLeader(ms.read_guard.WhiteList(ms.volumeLookupHandler))) + r.HandleFunc("/vol/grow", ms.proxyToLeader(ms.write_guard.WhiteList(ms.volumeGrowHandler))) + r.HandleFunc("/vol/status", ms.proxyToLeader(ms.read_guard.WhiteList(ms.volumeStatusHandler))) + r.HandleFunc("/vol/vacuum", ms.proxyToLeader(ms.write_guard.WhiteList(ms.volumeVacuumHandler))) + r.HandleFunc("/submit", ms.write_guard.WhiteList(ms.submitFromMasterServerHandler)) + r.HandleFunc("/delete", ms.write_guard.WhiteList(ms.deleteFromMasterServerHandler)) + r.HandleFunc("/{fileId}", ms.proxyToLeader(ms.read_guard.WhiteList(ms.redirectHandler))) + r.HandleFunc("/stats/counter", ms.read_guard.WhiteList(statsCounterHandler)) + r.HandleFunc("/stats/memory", ms.read_guard.WhiteList(statsMemoryHandler)) ms.Topo.StartRefreshWritableVolumes(garbageThreshold) |
