mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-01-19 02:48:24 +00:00
jwt check the base file id
fix https://github.com/chrislusf/seaweedfs/issues/867
This commit is contained in:
parent
2812c14520
commit
219b651bc3
31
weed/server/common_test.go
Normal file
31
weed/server/common_test.go
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
package weed_server
|
||||||
|
|
||||||
|
import (
|
||||||
|
"strings"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestParseURL(t *testing.T) {
|
||||||
|
if vid, fid, _, _, _ := parseURLPath("/1,06dfa8a684"); true {
|
||||||
|
if vid != "1" {
|
||||||
|
t.Errorf("fail to parse vid: %s", vid)
|
||||||
|
}
|
||||||
|
if fid != "06dfa8a684" {
|
||||||
|
t.Errorf("fail to parse fid: %s", fid)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if vid, fid, _, _, _ := parseURLPath("/1,06dfa8a684_1"); true {
|
||||||
|
if vid != "1" {
|
||||||
|
t.Errorf("fail to parse vid: %s", vid)
|
||||||
|
}
|
||||||
|
if fid != "06dfa8a684_1" {
|
||||||
|
t.Errorf("fail to parse fid: %s", fid)
|
||||||
|
}
|
||||||
|
if sepIndex := strings.LastIndex(fid, "_"); sepIndex > 0 {
|
||||||
|
fid = fid[:sepIndex]
|
||||||
|
}
|
||||||
|
if fid != "06dfa8a684" {
|
||||||
|
t.Errorf("fail to parse fid: %s", fid)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,6 +2,7 @@ package weed_server
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/chrislusf/seaweedfs/weed/glog"
|
"github.com/chrislusf/seaweedfs/weed/glog"
|
||||||
"github.com/chrislusf/seaweedfs/weed/security"
|
"github.com/chrislusf/seaweedfs/weed/security"
|
||||||
|
@ -71,6 +72,9 @@ func (vs *VolumeServer) maybeCheckJwtAuthorization(r *http.Request, vid, fid str
|
||||||
}
|
}
|
||||||
|
|
||||||
if sc, ok := token.Claims.(*security.SeaweedFileIdClaims); ok {
|
if sc, ok := token.Claims.(*security.SeaweedFileIdClaims); ok {
|
||||||
|
if sepIndex := strings.LastIndex(fid, "_"); sepIndex > 0 {
|
||||||
|
fid = fid[:sepIndex]
|
||||||
|
}
|
||||||
return sc.Fid == vid+","+fid
|
return sc.Fid == vid+","+fid
|
||||||
}
|
}
|
||||||
glog.V(1).Infof("unexpected jwt from %s: %v", r.RemoteAddr, tokenStr)
|
glog.V(1).Infof("unexpected jwt from %s: %v", r.RemoteAddr, tokenStr)
|
||||||
|
|
Loading…
Reference in a new issue