Browse Source

generate jwt token when looking up needle id

fix https://github.com/seaweedfs/seaweedfs/issues/4577
pull/4587/head
chrislu 2 years ago
parent
commit
94fbf02ea2
  1. 11
      weed/server/master_grpc_server_volume.go

11
weed/server/master_grpc_server_volume.go

@ -82,7 +82,13 @@ func (ms *MasterServer) LookupVolume(ctx context.Context, req *master_pb.LookupV
resp := &master_pb.LookupVolumeResponse{}
volumeLocations := ms.lookupVolumeId(req.VolumeOrFileIds, req.Collection)
for _, result := range volumeLocations {
for _, volumeOrFileId := range req.VolumeOrFileIds {
vid := volumeOrFileId
commaSep := strings.Index(vid, ",")
if commaSep > 0 {
vid = vid[0:commaSep]
}
if result, found := volumeLocations[vid]; found {
var locations []*master_pb.Location
for _, loc := range result.Locations {
locations = append(locations, &master_pb.Location{
@ -92,7 +98,7 @@ func (ms *MasterServer) LookupVolume(ctx context.Context, req *master_pb.LookupV
})
}
var auth string
if strings.Contains(result.VolumeOrFileId, ",") { // this is a file id
if commaSep > 0 { // this is a file id
auth = string(security.GenJwtForVolumeServer(ms.guard.SigningKey, ms.guard.ExpiresAfterSec, result.VolumeOrFileId))
}
resp.VolumeIdLocations = append(resp.VolumeIdLocations, &master_pb.LookupVolumeResponse_VolumeIdLocation{
@ -102,6 +108,7 @@ func (ms *MasterServer) LookupVolume(ctx context.Context, req *master_pb.LookupV
Auth: auth,
})
}
}
return resp, nil
}

Loading…
Cancel
Save