From b3a0b0502cd5edec69bc1cc7b399379cd45dce11 Mon Sep 17 00:00:00 2001 From: Anthony Romano Date: Fri, 10 Jun 2016 10:53:40 -0700 Subject: [PATCH] etcdserver: respect auth on serialized Range --- etcdserver/v3_server.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/etcdserver/v3_server.go b/etcdserver/v3_server.go index 09a6263a7..a06cd89fc 100644 --- a/etcdserver/v3_server.go +++ b/etcdserver/v3_server.go @@ -17,6 +17,7 @@ package etcdserver import ( "time" + "github.com/coreos/etcd/auth" pb "github.com/coreos/etcd/etcdserver/etcdserverpb" "github.com/coreos/etcd/lease" "github.com/coreos/etcd/lease/leasehttp" @@ -74,6 +75,14 @@ type Authenticator interface { func (s *EtcdServer) Range(ctx context.Context, r *pb.RangeRequest) (*pb.RangeResponse, error) { if r.Serializable { + user, err := s.usernameFromCtx(ctx) + if err != nil { + return nil, err + } + hdr := &pb.RequestHeader{Username: user} + if !s.AuthStore().IsRangePermitted(hdr, string(r.Key), string(r.RangeEnd)) { + return nil, auth.ErrPermissionDenied + } return s.applyV3.Range(noTxn, r) }