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 (
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"github.com/chrislusf/seaweedfs/weed/glog"
|
||||
"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 sepIndex := strings.LastIndex(fid, "_"); sepIndex > 0 {
|
||||
fid = fid[:sepIndex]
|
||||
}
|
||||
return sc.Fid == vid+","+fid
|
||||
}
|
||||
glog.V(1).Infof("unexpected jwt from %s: %v", r.RemoteAddr, tokenStr)
|
||||
|
|
Loading…
Reference in a new issue