From d68b9428323b87654291d9409355cc93d3e70f83 Mon Sep 17 00:00:00 2001 From: Willy Kloucek Date: Wed, 11 Aug 2021 09:21:59 +0200 Subject: [PATCH 01/12] remove goverage --- .bingo/Variables.mk | 6 ------ .bingo/goverage.mod | 5 ----- .bingo/variables.env | 2 -- .make/go.mk | 11 ++--------- 4 files changed, 2 insertions(+), 22 deletions(-) delete mode 100644 .bingo/goverage.mod diff --git a/.bingo/Variables.mk b/.bingo/Variables.mk index aee8a55c1..228f01f8b 100644 --- a/.bingo/Variables.mk +++ b/.bingo/Variables.mk @@ -59,12 +59,6 @@ $(GOLANGCI_LINT): $(BINGO_DIR)/golangci-lint.mod @echo "(re)installing $(GOBIN)/golangci-lint-v1.37.1" @cd $(BINGO_DIR) && $(GO) build -mod=mod -modfile=golangci-lint.mod -o=$(GOBIN)/golangci-lint-v1.37.1 "github.com/golangci/golangci-lint/cmd/golangci-lint" -GOVERAGE := $(GOBIN)/goverage-v0.0.0-20180129164344-eec3514a20b5 -$(GOVERAGE): $(BINGO_DIR)/goverage.mod - @# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies. - @echo "(re)installing $(GOBIN)/goverage-v0.0.0-20180129164344-eec3514a20b5" - @cd $(BINGO_DIR) && $(GO) build -mod=mod -modfile=goverage.mod -o=$(GOBIN)/goverage-v0.0.0-20180129164344-eec3514a20b5 "github.com/haya14busa/goverage" - GOX := $(GOBIN)/gox-v1.0.1 $(GOX): $(BINGO_DIR)/gox.mod @# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies. diff --git a/.bingo/goverage.mod b/.bingo/goverage.mod deleted file mode 100644 index d3f4a0e39..000000000 --- a/.bingo/goverage.mod +++ /dev/null @@ -1,5 +0,0 @@ -module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT - -go 1.16 - -require github.com/haya14busa/goverage v0.0.0-20180129164344-eec3514a20b5 diff --git a/.bingo/variables.env b/.bingo/variables.env index acba65d05..684588cdb 100644 --- a/.bingo/variables.env +++ b/.bingo/variables.env @@ -22,8 +22,6 @@ FLAEX="${GOBIN}/flaex-v0.2.1-0.20210701123229-9d7dceed124f" GOLANGCI_LINT="${GOBIN}/golangci-lint-v1.37.1" -GOVERAGE="${GOBIN}/goverage-v0.0.0-20180129164344-eec3514a20b5" - GOX="${GOBIN}/gox-v1.0.1" HUGO="${GOBIN}/hugo-v0.87.0" diff --git a/.make/go.mk b/.make/go.mk index 31479626a..4471c071a 100644 --- a/.make/go.mk +++ b/.make/go.mk @@ -16,9 +16,7 @@ else GOBUILD ?= go build endif -PACKAGES ?= $(shell go list ./...) SOURCES ?= $(shell find . -name "*.go" -type f -not -path "./node_modules/*") -GENERATE ?= $(PACKAGES) TAGS ?= @@ -78,16 +76,11 @@ ci-golangci-lint: $(GOLANGCI_LINT) $(GOLANGCI_LINT) run -E gosec -E bodyclose -E dogsled -E durationcheck -E golint -E ifshort -E makezero -E prealloc -E predeclared --path-prefix $(NAME) --timeout 10m0s --issues-exit-code 0 --out-format checkstyle > checkstyle.xml .PHONY: test -test: $(GOVERAGE) - @echo - @echo - @echo "$(NAME): test" - @echo - @$(GOVERAGE) -v -coverprofile coverage.out $(PACKAGES) +test: + @go test -v -coverprofile coverage.out ./... .PHONY: go-coverage go-coverage: - @echo "$(NAME): go-coverage" @if [ ! -f coverage.out ]; then $(MAKE) test &>/dev/null; fi; @go tool cover -func coverage.out | tail -1 | grep -Eo "[0-9]+\.[0-9]+" From 55aacdea13bdf1b83942b389afffa70fe127424c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Wed, 11 Aug 2021 20:33:27 +0000 Subject: [PATCH 02/12] update reva to ec4099da MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- accounts/pkg/storage/cs3.go | 17 ++++++++-------- ...a-v1.11.1-0.20210809134415-3fe79c870fb5.md | 8 ++++++++ go.mod | 4 ++-- go.sum | 10 ++++------ graph/pkg/middleware/auth.go | 9 ++++----- graph/pkg/service/v0/users.go | 4 ++-- ocis-pkg/indexer/index/cs3/autoincrement.go | 3 ++- ocis-pkg/indexer/index/cs3/non_unique.go | 5 +++-- ocis-pkg/indexer/index/cs3/unique.go | 9 +++++---- ocis-pkg/middleware/account.go | 7 ++++--- ocs/pkg/middleware/requireselforadmin.go | 4 ++-- ocs/pkg/middleware/requireuser.go | 4 ++-- ocs/pkg/service/v0/groups.go | 6 ++---- ocs/pkg/service/v0/users.go | 12 +++++------ proxy/pkg/middleware/account_resolver.go | 12 +++++------ proxy/pkg/middleware/account_resolver_test.go | 12 +++++------ proxy/pkg/middleware/create_home.go | 7 ++++--- proxy/pkg/middleware/signed_url_auth.go | 8 ++++---- proxy/pkg/proxy/policy/selector.go | 4 ++-- proxy/pkg/proxy/policy/selector_test.go | 20 +++++++++---------- proxy/pkg/proxy/proxy.go | 4 ++++ .../expected-failures-API-on-OCIS-storage.md | 3 --- thumbnails/pkg/service/v0/service.go | 4 ++-- thumbnails/pkg/thumbnail/imgsource/cs3.go | 14 +++++++++---- 24 files changed, 102 insertions(+), 88 deletions(-) diff --git a/accounts/pkg/storage/cs3.go b/accounts/pkg/storage/cs3.go index 5c253c5c0..76cfa9dba 100644 --- a/accounts/pkg/storage/cs3.go +++ b/accounts/pkg/storage/cs3.go @@ -16,6 +16,7 @@ import ( user "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1" v1beta11 "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1" + revactx "github.com/cs3org/reva/pkg/ctx" "github.com/cs3org/reva/pkg/rgrpc/todo/pool" "github.com/cs3org/reva/pkg/token" "github.com/cs3org/reva/pkg/token/manager/jwt" @@ -67,7 +68,7 @@ func (r CS3Repo) WriteAccount(ctx context.Context, a *proto.Account) (err error) return err } - ctx = metadata.AppendToOutgoingContext(ctx, token.TokenHeader, t) + ctx = metadata.AppendToOutgoingContext(ctx, revactx.TokenHeader, t) if err := r.makeRootDirIfNotExist(ctx, accountsFolder); err != nil { return err } @@ -104,7 +105,7 @@ func (r CS3Repo) LoadAccounts(ctx context.Context, a *[]*proto.Account) (err err return err } - ctx = metadata.AppendToOutgoingContext(ctx, token.TokenHeader, t) + ctx = metadata.AppendToOutgoingContext(ctx, revactx.TokenHeader, t) res, err := r.storageProvider.ListContainer(ctx, &provider.ListContainerRequest{ Ref: &provider.Reference{ Path: path.Join("/meta", accountsFolder), @@ -154,7 +155,7 @@ func (r CS3Repo) DeleteAccount(ctx context.Context, id string) (err error) { return err } - ctx = metadata.AppendToOutgoingContext(ctx, token.TokenHeader, t) + ctx = metadata.AppendToOutgoingContext(ctx, revactx.TokenHeader, t) resp, err := r.storageProvider.Delete(ctx, &provider.DeleteRequest{ Ref: &provider.Reference{ @@ -181,7 +182,7 @@ func (r CS3Repo) WriteGroup(ctx context.Context, g *proto.Group) (err error) { return err } - ctx = metadata.AppendToOutgoingContext(ctx, token.TokenHeader, t) + ctx = metadata.AppendToOutgoingContext(ctx, revactx.TokenHeader, t) if err := r.makeRootDirIfNotExist(ctx, groupsFolder); err != nil { return err } @@ -218,7 +219,7 @@ func (r CS3Repo) LoadGroups(ctx context.Context, g *[]*proto.Group) (err error) return err } - ctx = metadata.AppendToOutgoingContext(ctx, token.TokenHeader, t) + ctx = metadata.AppendToOutgoingContext(ctx, revactx.TokenHeader, t) res, err := r.storageProvider.ListContainer(ctx, &provider.ListContainerRequest{ Ref: &provider.Reference{ Path: path.Join("/meta", groupsFolder), @@ -268,7 +269,7 @@ func (r CS3Repo) DeleteGroup(ctx context.Context, id string) (err error) { return err } - ctx = metadata.AppendToOutgoingContext(ctx, token.TokenHeader, t) + ctx = metadata.AppendToOutgoingContext(ctx, revactx.TokenHeader, t) resp, err := r.storageProvider.Delete(ctx, &provider.DeleteRequest{ Ref: &provider.Reference{ @@ -371,7 +372,7 @@ func (d dataProviderClient) put(url string, body io.Reader, token string) (*http return nil, err } - req.Header.Add("x-access-token", token) + req.Header.Add(revactx.TokenHeader, token) return d.client.Do(req) } @@ -381,6 +382,6 @@ func (d dataProviderClient) get(url string, token string) (*http.Response, error return nil, err } - req.Header.Add("x-access-token", token) + req.Header.Add(revactx.TokenHeader, token) return d.client.Do(req) } diff --git a/changelog/1.10.0_2021-08-06/update-reva-v1.11.1-0.20210809134415-3fe79c870fb5.md b/changelog/1.10.0_2021-08-06/update-reva-v1.11.1-0.20210809134415-3fe79c870fb5.md index c3c52642c..7febf43cf 100644 --- a/changelog/1.10.0_2021-08-06/update-reva-v1.11.1-0.20210809134415-3fe79c870fb5.md +++ b/changelog/1.10.0_2021-08-06/update-reva-v1.11.1-0.20210809134415-3fe79c870fb5.md @@ -2,6 +2,14 @@ Enhancement: update REVA Update REVA from v1.10.1-0.20210730095301-fcb7a30a44a6 to v1.11.1-0.20210809134415-3fe79c870fb5 * Fix cs3org/reva#1978: Fix owner type is optional +* Fix cs3org/reva#1965: fix value of file_target in shares +* Fix cs3org/reva#1960: fix updating shares in the memory share manager +* Fix cs3org/reva#1956: fix trashbin listing with depth 0 +* Fix cs3org/reva#1957: fix etag propagation on deletes +* Enh cs3org/reva#1861: [WIP] Runtime plugins +* Fix cs3org/reva#1954: fix response format of the sharees API +* Fix cs3org/reva#1819: Remove notifications key from ocs response +* Enh cs3org/reva#1946: Add a share manager that connects to oc10 databases * Fix cs3org/reva#1899: Fix chunked uploads for new versions * Fix cs3org/reva#1906: Fix copy over existing resource * Fix cs3org/reva#1891: Delete Shared Resources as Receiver diff --git a/go.mod b/go.mod index a4fd85a03..134f67d7c 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,7 @@ require ( github.com/blevesearch/bleve v1.0.9 github.com/coreos/go-oidc v2.2.1+incompatible github.com/cs3org/go-cs3apis v0.0.0-20210802070913-970eec344e59 - github.com/cs3org/reva v1.11.1-0.20210809134415-3fe79c870fb5 + github.com/cs3org/reva v1.11.1-0.20210812105259-756bdced1d22 github.com/cznic/b v0.0.0-20181122101859-a26611c4d92d // indirect github.com/dgrijalva/jwt-go v3.2.0+incompatible github.com/disintegration/imaging v1.6.2 @@ -42,7 +42,7 @@ require ( github.com/iancoleman/strcase v0.1.3 github.com/jmhodges/levigo v1.0.0 // indirect github.com/justinas/alice v1.2.0 - github.com/libregraph/lico v0.34.1-0.20210803054646-b584e0372224 // indirect + github.com/libregraph/lico v0.34.1-0.20210803054646-b584e0372224 github.com/mennanov/fieldmask-utils v0.3.3 github.com/micro/cli/v2 v2.1.2 github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 diff --git a/go.sum b/go.sum index b15eaead3..f7c126ad9 100644 --- a/go.sum +++ b/go.sum @@ -288,8 +288,10 @@ github.com/crewjam/saml v0.4.5/go.mod h1:qCJQpUtZte9R1ZjUBcW8qtCNlinbO363ooNl02S github.com/cs3org/cato v0.0.0-20200828125504-e418fc54dd5e/go.mod h1:XJEZ3/EQuI3BXTp/6DUzFr850vlxq11I6satRtz0YQ4= github.com/cs3org/go-cs3apis v0.0.0-20210802070913-970eec344e59 h1:cj9HxIbmbGn+HPpFP8nZ8oaNUsoFa0+cheCO8FUNoMc= github.com/cs3org/go-cs3apis v0.0.0-20210802070913-970eec344e59/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= -github.com/cs3org/reva v1.11.1-0.20210809134415-3fe79c870fb5 h1:JFBmuZwnsShEuAA3U6BL+AY8mwKc5NnKUB7WkCeD5+8= -github.com/cs3org/reva v1.11.1-0.20210809134415-3fe79c870fb5/go.mod h1:9DgwsoB4cqlPaEC3hT7/NCdgJO7T1bY3kpxvWXc1DkA= +github.com/cs3org/reva v1.11.1-0.20210811142901-ec4099da830e h1:/gJanj5PuKzY51Z2Cp01DjHT2U1HLnEUSDrMf9kC7b8= +github.com/cs3org/reva v1.11.1-0.20210811142901-ec4099da830e/go.mod h1:9DgwsoB4cqlPaEC3hT7/NCdgJO7T1bY3kpxvWXc1DkA= +github.com/cs3org/reva v1.11.1-0.20210812105259-756bdced1d22 h1:RZxu/fWJiTmu8fT6pWfu0fdKq7ZUXAZI4TndUfiUIYI= +github.com/cs3org/reva v1.11.1-0.20210812105259-756bdced1d22/go.mod h1:9DgwsoB4cqlPaEC3hT7/NCdgJO7T1bY3kpxvWXc1DkA= github.com/cznic/b v0.0.0-20181122101859-a26611c4d92d h1:SwD98825d6bdB+pEuTxWOXiSjBrHdOl/UVp75eI7JT8= github.com/cznic/b v0.0.0-20181122101859-a26611c4d92d/go.mod h1:URriBxXwVq5ijiJ12C7iIZqlA69nTlI+LgI6/pwftG8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -365,7 +367,6 @@ github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31 h1:gclg6gY70GLy github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= github.com/go-acme/lego/v3 v3.4.0/go.mod h1:xYbLDuxq3Hy4bMUT1t9JIuz6GWIWb3m5X+TeTHYaT7M= github.com/go-asn1-ber/asn1-ber v1.3.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= -github.com/go-asn1-ber/asn1-ber v1.4.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-asn1-ber/asn1-ber v1.5.1 h1:pDbRAunXzIUXfx4CB2QJFv5IuPiuoW+sWvr/Us009o8= github.com/go-asn1-ber/asn1-ber v1.5.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-chi/chi v4.1.2+incompatible h1:fGFk2Gmi/YKXk0OmGfBh0WgmN3XB8lVnEyNz34tQRec= @@ -955,7 +956,6 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.0.10/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= @@ -1755,8 +1755,6 @@ sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck= sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= -stash.kopano.io/kc/konnect v0.34.0 h1:aKjZpLu8fvrrqVvNU9b2vKZOn8lUusXLoycLWgMi3o0= -stash.kopano.io/kc/konnect v0.34.0/go.mod h1:GV6AxroXyHte83EsiJXA5ZygzofQ48zXCJ3qX9bK1JY= stash.kopano.io/kgol/kcc-go/v5 v5.0.1 h1:urR9hOR6TnTKjGkzZKac/a9cA8ws1WecWLTgiYubLQw= stash.kopano.io/kgol/kcc-go/v5 v5.0.1/go.mod h1:0ZmjWapy3zp+TAjZI6iCrcfh+BthZbB2WM1VfhDgNB4= stash.kopano.io/kgol/ksurveyclient-go v0.6.0/go.mod h1:LJMDQBROS2oXxBN04eSI6j1KhgWlqMFd8xKjXV4Irtw= diff --git a/graph/pkg/middleware/auth.go b/graph/pkg/middleware/auth.go index 1436f16fd..cb624982a 100644 --- a/graph/pkg/middleware/auth.go +++ b/graph/pkg/middleware/auth.go @@ -4,9 +4,8 @@ import ( "net/http" "github.com/cs3org/reva/pkg/auth/scope" - "github.com/cs3org/reva/pkg/token" + revactx "github.com/cs3org/reva/pkg/ctx" "github.com/cs3org/reva/pkg/token/manager/jwt" - "github.com/cs3org/reva/pkg/user" "github.com/owncloud/ocis/graph/pkg/service/v0/errorcode" "github.com/owncloud/ocis/ocis-pkg/account" "google.golang.org/grpc/metadata" @@ -68,9 +67,9 @@ func Auth(opts ...account.Option) func(http.Handler) http.Handler { return } - ctx = token.ContextSetToken(ctx, t) - ctx = user.ContextSetUser(ctx, u) - ctx = metadata.AppendToOutgoingContext(ctx, token.TokenHeader, t) + ctx = revactx.ContextSetToken(ctx, t) + ctx = revactx.ContextSetUser(ctx, u) + ctx = metadata.AppendToOutgoingContext(ctx, revactx.TokenHeader, t) next.ServeHTTP(w, r.WithContext(ctx)) }) diff --git a/graph/pkg/service/v0/users.go b/graph/pkg/service/v0/users.go index 4926f5a80..99537b197 100644 --- a/graph/pkg/service/v0/users.go +++ b/graph/pkg/service/v0/users.go @@ -6,7 +6,7 @@ import ( cs3 "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1" cs3rpc "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" - "github.com/cs3org/reva/pkg/user" + revactx "github.com/cs3org/reva/pkg/ctx" "github.com/go-chi/chi" "github.com/go-chi/render" "github.com/owncloud/ocis/graph/pkg/service/v0/errorcode" @@ -63,7 +63,7 @@ func (g Graph) UserCtx(next http.Handler) http.Handler { // GetMe implements the Service interface. func (g Graph) GetMe(w http.ResponseWriter, r *http.Request) { - u, ok := user.ContextGetUser(r.Context()) + u, ok := revactx.ContextGetUser(r.Context()) if !ok { g.logger.Error().Msg("user not in context") errorcode.ServiceNotAvailable.Render(w, r, http.StatusInternalServerError, "user not in context") diff --git a/ocis-pkg/indexer/index/cs3/autoincrement.go b/ocis-pkg/indexer/index/cs3/autoincrement.go index 2263cdd01..2a638b542 100644 --- a/ocis-pkg/indexer/index/cs3/autoincrement.go +++ b/ocis-pkg/indexer/index/cs3/autoincrement.go @@ -18,6 +18,7 @@ import ( v1beta11 "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1" + revactx "github.com/cs3org/reva/pkg/ctx" "github.com/cs3org/reva/pkg/rgrpc/todo/pool" "github.com/cs3org/reva/pkg/token" "github.com/cs3org/reva/pkg/token/manager/jwt" @@ -363,7 +364,7 @@ func (idx *Autoincrement) getAuthenticatedContext(ctx context.Context) (context. if err != nil { return nil, err } - ctx = metadata.AppendToOutgoingContext(ctx, token.TokenHeader, t) + ctx = metadata.AppendToOutgoingContext(ctx, revactx.TokenHeader, t) return ctx, nil } diff --git a/ocis-pkg/indexer/index/cs3/non_unique.go b/ocis-pkg/indexer/index/cs3/non_unique.go index eefe6ef04..3f8ad59bd 100644 --- a/ocis-pkg/indexer/index/cs3/non_unique.go +++ b/ocis-pkg/indexer/index/cs3/non_unique.go @@ -14,6 +14,7 @@ import ( v1beta11 "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1" + revactx "github.com/cs3org/reva/pkg/ctx" "github.com/cs3org/reva/pkg/rgrpc/todo/pool" "github.com/cs3org/reva/pkg/token" "github.com/cs3org/reva/pkg/token/manager/jwt" @@ -106,7 +107,7 @@ func (idx *NonUnique) Init() error { if err != nil { return err } - ctx = metadata.AppendToOutgoingContext(ctx, token.TokenHeader, tk) + ctx = metadata.AppendToOutgoingContext(ctx, revactx.TokenHeader, tk) if err := idx.makeDirIfNotExists(ctx, idx.indexBaseDir); err != nil { return err @@ -374,7 +375,7 @@ func (idx *NonUnique) getAuthenticatedContext(ctx context.Context) (context.Cont if err != nil { return nil, err } - ctx = metadata.AppendToOutgoingContext(ctx, token.TokenHeader, t) + ctx = metadata.AppendToOutgoingContext(ctx, revactx.TokenHeader, t) return ctx, nil } diff --git a/ocis-pkg/indexer/index/cs3/unique.go b/ocis-pkg/indexer/index/cs3/unique.go index 8b001e524..e94aee401 100644 --- a/ocis-pkg/indexer/index/cs3/unique.go +++ b/ocis-pkg/indexer/index/cs3/unique.go @@ -16,6 +16,7 @@ import ( v1beta11 "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1" + revactx "github.com/cs3org/reva/pkg/ctx" "github.com/cs3org/reva/pkg/rgrpc/todo/pool" "github.com/cs3org/reva/pkg/token" "github.com/cs3org/reva/pkg/token/manager/jwt" @@ -112,7 +113,7 @@ func (idx *Unique) Init() error { if err != nil { return err } - ctx = metadata.AppendToOutgoingContext(ctx, token.TokenHeader, tk) + ctx = metadata.AppendToOutgoingContext(ctx, revactx.TokenHeader, tk) if err := idx.makeDirIfNotExists(ctx, idx.indexBaseDir); err != nil { return err @@ -188,7 +189,7 @@ func (idx *Unique) Remove(id string, v string) error { } deletePath := path.Join("/meta", idx.indexRootDir, v) - ctx = metadata.AppendToOutgoingContext(ctx, token.TokenHeader, t) + ctx = metadata.AppendToOutgoingContext(ctx, revactx.TokenHeader, t) resp, err := idx.storageProvider.Delete(ctx, &provider.DeleteRequest{ Ref: &provider.Reference{ Path: deletePath, @@ -237,7 +238,7 @@ func (idx *Unique) Search(pattern string) ([]string, error) { return nil, err } - ctx = metadata.AppendToOutgoingContext(ctx, token.TokenHeader, t) + ctx = metadata.AppendToOutgoingContext(ctx, revactx.TokenHeader, t) res, err := idx.storageProvider.ListContainer(ctx, &provider.ListContainerRequest{ Ref: &provider.Reference{ Path: path.Join("/meta", idx.indexRootDir), @@ -350,7 +351,7 @@ func (idx *Unique) getAuthenticatedContext(ctx context.Context) (context.Context if err != nil { return nil, err } - ctx = metadata.AppendToOutgoingContext(ctx, token.TokenHeader, t) + ctx = metadata.AppendToOutgoingContext(ctx, revactx.TokenHeader, t) return ctx, nil } diff --git a/ocis-pkg/middleware/account.go b/ocis-pkg/middleware/account.go index ee96d7657..a8941c193 100644 --- a/ocis-pkg/middleware/account.go +++ b/ocis-pkg/middleware/account.go @@ -3,12 +3,13 @@ package middleware import ( "context" "encoding/json" - "github.com/cs3org/reva/pkg/auth/scope" "net/http" + "github.com/cs3org/reva/pkg/auth/scope" + "github.com/asim/go-micro/v3/metadata" + revactx "github.com/cs3org/reva/pkg/ctx" "github.com/cs3org/reva/pkg/token/manager/jwt" - "github.com/cs3org/reva/pkg/user" "github.com/owncloud/ocis/ocis-pkg/account" ) @@ -65,7 +66,7 @@ func ExtractAccountUUID(opts ...account.Option) func(http.Handler) http.Handler } // store user in context for request - ctx := user.ContextSetUser(r.Context(), u) + ctx := revactx.ContextSetUser(r.Context(), u) // Important: user.Id.OpaqueId is the AccountUUID. Set this way in the account uuid middleware in ocis-proxy. // https://github.com/owncloud/ocis-proxy/blob/ea254d6036592cf9469d757d1295e0c4309d1e63/pkg/middleware/account_uuid.go#L109 diff --git a/ocs/pkg/middleware/requireselforadmin.go b/ocs/pkg/middleware/requireselforadmin.go index 9268e49e1..afcafae1c 100644 --- a/ocs/pkg/middleware/requireselforadmin.go +++ b/ocs/pkg/middleware/requireselforadmin.go @@ -3,7 +3,7 @@ package middleware import ( "net/http" - "github.com/cs3org/reva/pkg/user" + revactx "github.com/cs3org/reva/pkg/ctx" "github.com/go-chi/chi" "github.com/go-chi/render" accounts "github.com/owncloud/ocis/accounts/pkg/service/v0" @@ -19,7 +19,7 @@ func RequireSelfOrAdmin(opts ...Option) func(next http.Handler) http.Handler { return func(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - u, ok := user.ContextGetUser(r.Context()) + u, ok := revactx.ContextGetUser(r.Context()) if !ok { mustNotFail(render.Render(w, r, response.ErrRender(data.MetaUnauthorized.StatusCode, "Unauthorized"))) return diff --git a/ocs/pkg/middleware/requireuser.go b/ocs/pkg/middleware/requireuser.go index 995caa7d8..766aed8eb 100644 --- a/ocs/pkg/middleware/requireuser.go +++ b/ocs/pkg/middleware/requireuser.go @@ -3,7 +3,7 @@ package middleware import ( "net/http" - "github.com/cs3org/reva/pkg/user" + revactx "github.com/cs3org/reva/pkg/ctx" "github.com/go-chi/render" "github.com/owncloud/ocis/ocs/pkg/service/v0/data" "github.com/owncloud/ocis/ocs/pkg/service/v0/response" @@ -15,7 +15,7 @@ func RequireUser() func(next http.Handler) http.Handler { return func(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - u, ok := user.ContextGetUser(r.Context()) + u, ok := revactx.ContextGetUser(r.Context()) if !ok { mustNotFail(render.Render(w, r, response.ErrRender(data.MetaUnauthorized.StatusCode, "Unauthorized"))) return diff --git a/ocs/pkg/service/v0/groups.go b/ocs/pkg/service/v0/groups.go index 57c3f6c7c..dccf9d15c 100644 --- a/ocs/pkg/service/v0/groups.go +++ b/ocs/pkg/service/v0/groups.go @@ -9,12 +9,10 @@ import ( "regexp" "strconv" - "github.com/cs3org/reva/pkg/user" - merrors "github.com/asim/go-micro/v3/errors" + revactx "github.com/cs3org/reva/pkg/ctx" "github.com/go-chi/chi" "github.com/go-chi/render" - accounts "github.com/owncloud/ocis/accounts/pkg/proto/v0" "github.com/owncloud/ocis/ocs/pkg/service/v0/data" "github.com/owncloud/ocis/ocs/pkg/service/v0/response" @@ -27,7 +25,7 @@ func (o Ocs) ListUserGroups(w http.ResponseWriter, r *http.Request) { var err error // short circuit if there is a user already in the context - if u, ok := user.ContextGetUser(r.Context()); ok { + if u, ok := revactx.ContextGetUser(r.Context()); ok { // we are not sure whether the current user in the context is the admin or the authenticated user. if u.Username == userid { // the OCS API is a REST API and it uses the username to look for groups. If the id from the user in the context diff --git a/ocs/pkg/service/v0/users.go b/ocs/pkg/service/v0/users.go index 28b0d0b40..ad44cb074 100644 --- a/ocs/pkg/service/v0/users.go +++ b/ocs/pkg/service/v0/users.go @@ -9,18 +9,16 @@ import ( "strconv" "strings" - "github.com/cs3org/reva/pkg/auth/scope" - "github.com/asim/go-micro/plugins/client/grpc/v3" merrors "github.com/asim/go-micro/v3/errors" gateway "github.com/cs3org/go-cs3apis/cs3/gateway/v1beta1" revauser "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1" rpcv1beta1 "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1" + "github.com/cs3org/reva/pkg/auth/scope" + revactx "github.com/cs3org/reva/pkg/ctx" "github.com/cs3org/reva/pkg/rgrpc/todo/pool" - "github.com/cs3org/reva/pkg/token" "github.com/cs3org/reva/pkg/token/manager/jwt" - "github.com/cs3org/reva/pkg/user" "github.com/go-chi/chi" "github.com/go-chi/render" accounts "github.com/owncloud/ocis/accounts/pkg/proto/v0" @@ -37,7 +35,7 @@ import ( func (o Ocs) GetSelf(w http.ResponseWriter, r *http.Request) { var account *accounts.Account var err error - u, ok := user.ContextGetUser(r.Context()) + u, ok := revactx.ContextGetUser(r.Context()) if !ok || u.Id == nil || u.Id.OpaqueId == "" { mustNotFail(render.Render(w, r, response.ErrRender(data.MetaBadRequest.StatusCode, "user is missing an id"))) return @@ -373,7 +371,7 @@ func (o Ocs) DeleteUser(w http.ResponseWriter, r *http.Request) { return } - ctx := metadata.AppendToOutgoingContext(r.Context(), token.TokenHeader, t) + ctx := metadata.AppendToOutgoingContext(r.Context(), revactx.TokenHeader, t) gwc, err := pool.GetGatewayServiceClient(o.config.RevaAddress) if err != nil { @@ -603,7 +601,7 @@ func (o Ocs) DisableUser(w http.ResponseWriter, r *http.Request) { // The signing key is part of the user settings and is used by the proxy to authenticate requests // Currently, the username is used as the OC-Credential func (o Ocs) GetSigningKey(w http.ResponseWriter, r *http.Request) { - u, ok := user.ContextGetUser(r.Context()) + u, ok := revactx.ContextGetUser(r.Context()) if !ok { //o.logger.Error().Msg("missing user in context") mustNotFail(render.Render(w, r, response.ErrRender(data.MetaBadRequest.StatusCode, "missing user in context"))) diff --git a/proxy/pkg/middleware/account_resolver.go b/proxy/pkg/middleware/account_resolver.go index e7d6aed68..fe791ec0f 100644 --- a/proxy/pkg/middleware/account_resolver.go +++ b/proxy/pkg/middleware/account_resolver.go @@ -7,9 +7,9 @@ import ( "github.com/cs3org/reva/pkg/auth/scope" "github.com/owncloud/ocis/proxy/pkg/user/backend" - tokenPkg "github.com/cs3org/reva/pkg/token" + revactx "github.com/cs3org/reva/pkg/ctx" + "github.com/cs3org/reva/pkg/token" "github.com/cs3org/reva/pkg/token/manager/jwt" - revauser "github.com/cs3org/reva/pkg/user" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/ocis-pkg/oidc" ) @@ -44,7 +44,7 @@ func AccountResolver(optionSetters ...Option) func(next http.Handler) http.Handl type accountResolver struct { next http.Handler logger log.Logger - tokenManager tokenPkg.Manager + tokenManager token.Manager userProvider backend.UserBackend autoProvisionAccounts bool userOIDCClaim string @@ -55,7 +55,7 @@ type accountResolver struct { func (m accountResolver) ServeHTTP(w http.ResponseWriter, req *http.Request) { ctx := req.Context() claims := oidc.FromContext(ctx) - u, ok := revauser.ContextGetUser(ctx) + u, ok := revactx.ContextGetUser(ctx) // TODO what if an X-Access-Token is set? happens eg for download requests to the /data endpoint in the reva frontend if claims == nil && !ok { @@ -102,7 +102,7 @@ func (m accountResolver) ServeHTTP(w http.ResponseWriter, req *http.Request) { } // add user to context for selectors - ctx = revauser.ContextSetUser(ctx, u) + ctx = revactx.ContextSetUser(ctx, u) req = req.WithContext(ctx) m.logger.Debug().Interface("claims", claims).Interface("user", u).Msg("associated claims with user") @@ -120,7 +120,7 @@ func (m accountResolver) ServeHTTP(w http.ResponseWriter, req *http.Request) { return } - req.Header.Set(tokenPkg.TokenHeader, token) + req.Header.Set(revactx.TokenHeader, token) m.next.ServeHTTP(w, req) } diff --git a/proxy/pkg/middleware/account_resolver_test.go b/proxy/pkg/middleware/account_resolver_test.go index 8247cb049..9674c1303 100644 --- a/proxy/pkg/middleware/account_resolver_test.go +++ b/proxy/pkg/middleware/account_resolver_test.go @@ -7,7 +7,7 @@ import ( "testing" userv1beta1 "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1" - "github.com/cs3org/reva/pkg/token" + revactx "github.com/cs3org/reva/pkg/ctx" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/ocis-pkg/oidc" "github.com/owncloud/ocis/proxy/pkg/config" @@ -29,7 +29,7 @@ func TestTokenIsAddedWithMailClaim(t *testing.T) { sut.ServeHTTP(rw, req) - token := req.Header.Get(token.TokenHeader) + token := req.Header.Get(revactx.TokenHeader) assert.NotEmpty(t, token) assert.Contains(t, token, "eyJ") } @@ -47,7 +47,7 @@ func TestTokenIsAddedWithUsernameClaim(t *testing.T) { sut.ServeHTTP(rw, req) - token := req.Header.Get(token.TokenHeader) + token := req.Header.Get(revactx.TokenHeader) assert.NotEmpty(t, token) assert.Contains(t, token, "eyJ") @@ -73,7 +73,7 @@ func TestUnauthorizedOnUserNotFound(t *testing.T) { sut.ServeHTTP(rw, req) - token := req.Header.Get(token.TokenHeader) + token := req.Header.Get(revactx.TokenHeader) assert.Empty(t, token) assert.Equal(t, http.StatusUnauthorized, rw.Code) } @@ -87,7 +87,7 @@ func TestUnauthorizedOnUserDisabled(t *testing.T) { sut.ServeHTTP(rw, req) - token := req.Header.Get(token.TokenHeader) + token := req.Header.Get(revactx.TokenHeader) assert.Empty(t, token) assert.Equal(t, http.StatusUnauthorized, rw.Code) } @@ -100,7 +100,7 @@ func TestInternalServerErrorOnMissingMailAndUsername(t *testing.T) { sut.ServeHTTP(rw, req) - token := req.Header.Get(token.TokenHeader) + token := req.Header.Get(revactx.TokenHeader) assert.Empty(t, token) assert.Equal(t, http.StatusInternalServerError, rw.Code) } diff --git a/proxy/pkg/middleware/create_home.go b/proxy/pkg/middleware/create_home.go index f6b083f91..84ff08910 100644 --- a/proxy/pkg/middleware/create_home.go +++ b/proxy/pkg/middleware/create_home.go @@ -6,8 +6,9 @@ import ( gateway "github.com/cs3org/go-cs3apis/cs3/gateway/v1beta1" rpc "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1" + revactx "github.com/cs3org/reva/pkg/ctx" "github.com/cs3org/reva/pkg/rgrpc/status" - tokenPkg "github.com/cs3org/reva/pkg/token" + "github.com/cs3org/reva/pkg/token" "github.com/cs3org/reva/pkg/token/manager/jwt" "github.com/owncloud/ocis/ocis-pkg/log" "google.golang.org/grpc/metadata" @@ -38,7 +39,7 @@ func CreateHome(optionSetters ...Option) func(next http.Handler) http.Handler { type createHome struct { next http.Handler logger log.Logger - tokenManager tokenPkg.Manager + tokenManager token.Manager revaGatewayClient gateway.GatewayAPIClient } @@ -52,7 +53,7 @@ func (m createHome) ServeHTTP(w http.ResponseWriter, req *http.Request) { // we need to pass the token to authenticate the CreateHome request. //ctx := tokenpkg.ContextSetToken(r.Context(), token) - ctx := metadata.AppendToOutgoingContext(req.Context(), tokenPkg.TokenHeader, token) + ctx := metadata.AppendToOutgoingContext(req.Context(), revactx.TokenHeader, token) createHomeReq := &provider.CreateHomeRequest{} createHomeRes, err := m.revaGatewayClient.CreateHome(ctx, createHomeReq) diff --git a/proxy/pkg/middleware/signed_url_auth.go b/proxy/pkg/middleware/signed_url_auth.go index 46715ac6b..76f0dff50 100644 --- a/proxy/pkg/middleware/signed_url_auth.go +++ b/proxy/pkg/middleware/signed_url_auth.go @@ -6,15 +6,15 @@ import ( "encoding/hex" "errors" "fmt" - revauser "github.com/cs3org/reva/pkg/user" - "github.com/owncloud/ocis/proxy/pkg/user/backend" "net/http" "net/url" "strings" "time" + revactx "github.com/cs3org/reva/pkg/ctx" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/proxy/pkg/config" + "github.com/owncloud/ocis/proxy/pkg/user/backend" store "github.com/owncloud/ocis/store/pkg/proto/v0" "golang.org/x/crypto/pbkdf2" ) @@ -54,7 +54,7 @@ func (m signedURLAuth) ServeHTTP(w http.ResponseWriter, req *http.Request) { w.WriteHeader(http.StatusInternalServerError) } - ctx := revauser.ContextSetUser(req.Context(), user) + ctx := revactx.ContextSetUser(req.Context(), user) req = req.WithContext(ctx) @@ -164,7 +164,7 @@ func (m signedURLAuth) urlIsExpired(query url.Values, now func() time.Time) (exp } func (m signedURLAuth) signatureIsValid(req *http.Request) (ok bool, err error) { - u := revauser.ContextMustGetUser(req.Context()) + u := revactx.ContextMustGetUser(req.Context()) signingKey, err := m.getSigningKey(req.Context(), u.Id.OpaqueId) if err != nil { m.logger.Error().Err(err).Msg("could not retrieve signing key") diff --git a/proxy/pkg/proxy/policy/selector.go b/proxy/pkg/proxy/policy/selector.go index ef5a1b556..9a9ac5aaf 100644 --- a/proxy/pkg/proxy/policy/selector.go +++ b/proxy/pkg/proxy/policy/selector.go @@ -7,7 +7,7 @@ import ( "sort" "github.com/asim/go-micro/plugins/client/grpc/v3" - revauser "github.com/cs3org/reva/pkg/user" + revactx "github.com/cs3org/reva/pkg/ctx" accounts "github.com/owncloud/ocis/accounts/pkg/proto/v0" "github.com/owncloud/ocis/ocis-pkg/oidc" "github.com/owncloud/ocis/proxy/pkg/config" @@ -220,7 +220,7 @@ func NewRegexSelector(cfg *config.RegexSelectorConf) Selector { } // if no cookie is present, try to route by selector - if u, ok := revauser.ContextGetUser(r.Context()); ok { + if u, ok := revactx.ContextGetUser(r.Context()); ok { for i := range regexRules { switch regexRules[i].property { case "mail": diff --git a/proxy/pkg/proxy/policy/selector_test.go b/proxy/pkg/proxy/policy/selector_test.go index 5e65674c9..96da63e69 100644 --- a/proxy/pkg/proxy/policy/selector_test.go +++ b/proxy/pkg/proxy/policy/selector_test.go @@ -8,7 +8,7 @@ import ( "github.com/asim/go-micro/v3/client" userv1beta1 "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1" - revauser "github.com/cs3org/reva/pkg/user" + revactx "github.com/cs3org/reva/pkg/ctx" "github.com/owncloud/ocis/accounts/pkg/proto/v0" "github.com/owncloud/ocis/ocis-pkg/oidc" "github.com/owncloud/ocis/proxy/pkg/config" @@ -173,15 +173,15 @@ func TestRegexSelector(t *testing.T) { var tests = []testCase{ {"unauthenticated", context.Background(), "unauthenticated"}, - {"default", revauser.ContextSetUser(context.Background(), &userv1beta1.User{}), "default"}, - {"mail-ocis", revauser.ContextSetUser(context.Background(), &userv1beta1.User{Mail: "marie@example.org"}), "ocis"}, - {"mail-oc10", revauser.ContextSetUser(context.Background(), &userv1beta1.User{Mail: "einstein@example.org"}), "oc10"}, - {"username-einstein", revauser.ContextSetUser(context.Background(), &userv1beta1.User{Username: "einstein"}), "ocis"}, - {"username-feynman", revauser.ContextSetUser(context.Background(), &userv1beta1.User{Username: "feynman"}), "ocis"}, - {"username-marie", revauser.ContextSetUser(context.Background(), &userv1beta1.User{Username: "marie"}), "oc10"}, - {"id-nil", revauser.ContextSetUser(context.Background(), &userv1beta1.User{Id: &userv1beta1.UserId{}}), "default"}, - {"id-1", revauser.ContextSetUser(context.Background(), &userv1beta1.User{Id: &userv1beta1.UserId{OpaqueId: "4c510ada-c86b-4815-8820-42cdf82c3d51"}}), "ocis"}, - {"id-2", revauser.ContextSetUser(context.Background(), &userv1beta1.User{Id: &userv1beta1.UserId{OpaqueId: "f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c"}}), "oc10"}, + {"default", revactx.ContextSetUser(context.Background(), &userv1beta1.User{}), "default"}, + {"mail-ocis", revactx.ContextSetUser(context.Background(), &userv1beta1.User{Mail: "marie@example.org"}), "ocis"}, + {"mail-oc10", revactx.ContextSetUser(context.Background(), &userv1beta1.User{Mail: "einstein@example.org"}), "oc10"}, + {"username-einstein", revactx.ContextSetUser(context.Background(), &userv1beta1.User{Username: "einstein"}), "ocis"}, + {"username-feynman", revactx.ContextSetUser(context.Background(), &userv1beta1.User{Username: "feynman"}), "ocis"}, + {"username-marie", revactx.ContextSetUser(context.Background(), &userv1beta1.User{Username: "marie"}), "oc10"}, + {"id-nil", revactx.ContextSetUser(context.Background(), &userv1beta1.User{Id: &userv1beta1.UserId{}}), "default"}, + {"id-1", revactx.ContextSetUser(context.Background(), &userv1beta1.User{Id: &userv1beta1.UserId{OpaqueId: "4c510ada-c86b-4815-8820-42cdf82c3d51"}}), "ocis"}, + {"id-2", revactx.ContextSetUser(context.Background(), &userv1beta1.User{Id: &userv1beta1.UserId{OpaqueId: "f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c"}}), "oc10"}, } for _, tc := range tests { diff --git a/proxy/pkg/proxy/proxy.go b/proxy/pkg/proxy/proxy.go index 9193252e1..aa2334979 100644 --- a/proxy/pkg/proxy/proxy.go +++ b/proxy/pkg/proxy/proxy.go @@ -288,6 +288,10 @@ func defaultPolicies() []config.Policy { Endpoint: "/ocs/", Backend: "http://localhost:9140", }, + { + Endpoint: "/ocs/v[12].php/cloud/users/signing-key", + Backend: "http://localhost:9110", + }, { Type: config.QueryRoute, Endpoint: "/remote.php/?preview=1", diff --git a/tests/acceptance/expected-failures-API-on-OCIS-storage.md b/tests/acceptance/expected-failures-API-on-OCIS-storage.md index 6a5bfbec8..034274cc2 100644 --- a/tests/acceptance/expected-failures-API-on-OCIS-storage.md +++ b/tests/acceptance/expected-failures-API-on-OCIS-storage.md @@ -5,9 +5,6 @@ Basic file management like up and download, move, copy, properties, trash, versi #### [Version count is 1 more than on oC10](https://github.com/owncloud/ocis/issues/1633) -#### [Implement Versions Feature for ocis storage](https://github.com/owncloud/product/issues/210) -- [apiWebdavEtagPropagation2/restoreVersion.feature:10](https://github.com/owncloud/core/blob/master/tests/acceptance/features/apiWebdavEtagPropagation2/restoreVersion.feature#L10) - #### [PUT request with missing parent must return status code 409](https://github.com/owncloud/ocis/issues/824) #### [invalid file-names should not be created using the TUS protocol](https://github.com/owncloud/ocis/issues/1001) diff --git a/thumbnails/pkg/service/v0/service.go b/thumbnails/pkg/service/v0/service.go index 26ddfeb2c..dab2496ab 100644 --- a/thumbnails/pkg/service/v0/service.go +++ b/thumbnails/pkg/service/v0/service.go @@ -11,7 +11,7 @@ import ( gateway "github.com/cs3org/go-cs3apis/cs3/gateway/v1beta1" rpc "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1" - "github.com/cs3org/reva/pkg/token" + revactx "github.com/cs3org/reva/pkg/ctx" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/thumbnails/pkg/preprocessor" v0proto "github.com/owncloud/ocis/thumbnails/pkg/proto/v0" @@ -201,7 +201,7 @@ func (g Thumbnail) handleWebdavSource(ctx context.Context, req *v0proto.GetThumb } func (g Thumbnail) stat(path, auth string) (*provider.StatResponse, error) { - ctx := metadata.AppendToOutgoingContext(context.Background(), token.TokenHeader, auth) + ctx := metadata.AppendToOutgoingContext(context.Background(), revactx.TokenHeader, auth) req := &provider.StatRequest{ Ref: &provider.Reference{ diff --git a/thumbnails/pkg/thumbnail/imgsource/cs3.go b/thumbnails/pkg/thumbnail/imgsource/cs3.go index 7dfa9cadb..68cf63750 100644 --- a/thumbnails/pkg/thumbnail/imgsource/cs3.go +++ b/thumbnails/pkg/thumbnail/imgsource/cs3.go @@ -10,12 +10,18 @@ import ( gateway "github.com/cs3org/go-cs3apis/cs3/gateway/v1beta1" rpc "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1" + revactx "github.com/cs3org/reva/pkg/ctx" "github.com/cs3org/reva/pkg/rhttp" - "github.com/cs3org/reva/pkg/token" "github.com/pkg/errors" "google.golang.org/grpc/metadata" ) +const ( + // "github.com/cs3org/reva/internal/http/services/datagateway" is internal so we redeclare it here + // TokenTransportHeader holds the header key for the reva transfer token + TokenTransportHeader = "X-Reva-Transfer" +) + type CS3 struct { client gateway.GatewayAPIClient } @@ -33,7 +39,7 @@ func (s CS3) Get(ctx context.Context, path string) (io.ReadCloser, error) { if !ok { return nil, errors.New("cs3source: authorization missing") } - ctx = metadata.AppendToOutgoingContext(context.Background(), token.TokenHeader, auth) + ctx = metadata.AppendToOutgoingContext(context.Background(), revactx.TokenHeader, auth) rsp, err := s.client.InitiateFileDownload(ctx, &provider.InitiateFileDownloadRequest{ Ref: &provider.Reference{ Path: path, @@ -58,8 +64,8 @@ func (s CS3) Get(ctx context.Context, path string) (io.ReadCloser, error) { if err != nil { return nil, err } - httpReq.Header.Set(token.TokenHeader, auth) - httpReq.Header.Set("X-REVA-TRANSFER", tk) + httpReq.Header.Set(revactx.TokenHeader, auth) + httpReq.Header.Set(TokenTransportHeader, tk) http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} //nolint:gosec client := &http.Client{} From 2927dc45c39793e42ce686c6cf1508118eab744d Mon Sep 17 00:00:00 2001 From: David Christofas Date: Thu, 12 Aug 2021 12:08:48 +0000 Subject: [PATCH 03/12] Automated changelog update [skip ci] --- CHANGELOG.md | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 28c7a64af..e04e563f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -105,14 +105,20 @@ The following sections list the changes for 1.10.0. Update REVA from v1.10.1-0.20210730095301-fcb7a30a44a6 to v1.11.1-0.20210809134415-3fe79c870fb5 * Fix cs3org/reva#1978: Fix owner type is optional - * Fix cs3org/reva#1899: Fix chunked uploads for new versions * Fix cs3org/reva#1906: Fix copy - over existing resource * Fix cs3org/reva#1891: Delete Shared Resources as Receiver * Fix - cs3org/reva#1907: Error when creating folder with existing name * Fix cs3org/reva#1937: Do - not overwrite more specific matches when finding storage providers * Fix cs3org/reva#1939: - Fix the share jail permissions in the decomposedfs * Fix cs3org/reva#1932: Numerous fixes to - the owncloudsql storage driver * Fix cs3org/reva#1912: Fix response when listing versions of - another user * Fix cs3org/reva#1910: Get user groups recursively in the cbox rest user driver * - Fix cs3org/reva#1904: Set Content-Length to 0 when swallowing body in the datagateway * Fix + * Fix cs3org/reva#1965: fix value of file_target in shares * Fix cs3org/reva#1960: fix + updating shares in the memory share manager * Fix cs3org/reva#1956: fix trashbin listing with + depth 0 * Fix cs3org/reva#1957: fix etag propagation on deletes * Enh cs3org/reva#1861: [WIP] + Runtime plugins * Fix cs3org/reva#1954: fix response format of the sharees API * Fix + cs3org/reva#1819: Remove notifications key from ocs response * Enh cs3org/reva#1946: Add a + share manager that connects to oc10 databases * Fix cs3org/reva#1899: Fix chunked uploads for + new versions * Fix cs3org/reva#1906: Fix copy over existing resource * Fix cs3org/reva#1891: + Delete Shared Resources as Receiver * Fix cs3org/reva#1907: Error when creating folder with + existing name * Fix cs3org/reva#1937: Do not overwrite more specific matches when finding + storage providers * Fix cs3org/reva#1939: Fix the share jail permissions in the decomposedfs + * Fix cs3org/reva#1932: Numerous fixes to the owncloudsql storage driver * Fix + cs3org/reva#1912: Fix response when listing versions of another user * Fix + cs3org/reva#1910: Get user groups recursively in the cbox rest user driver * Fix + cs3org/reva#1904: Set Content-Length to 0 when swallowing body in the datagateway * Fix cs3org/reva#1911: Fix version order in propfind responses * Fix cs3org/reva#1926: Trash Bin in oCIS Storage Operations * Fix cs3org/reva#1901: Fix response code when folder doesnt exist on upload * Enh cs3org/reva#1785: Extend app registry with AddProvider method and mimetype From 305ef58b732c263dc98215312a0dd9b175709008 Mon Sep 17 00:00:00 2001 From: Willy Kloucek Date: Wed, 11 Aug 2021 13:07:17 +0200 Subject: [PATCH 04/12] make image not using root user --- ocis/docker/Dockerfile.linux.amd64 | 25 ++++++++++++++++++++++--- ocis/docker/Dockerfile.linux.arm | 25 ++++++++++++++++++++++--- ocis/docker/Dockerfile.linux.arm64 | 25 ++++++++++++++++++++++--- 3 files changed, 66 insertions(+), 9 deletions(-) diff --git a/ocis/docker/Dockerfile.linux.amd64 b/ocis/docker/Dockerfile.linux.amd64 index ce227da2d..4d2b1b39a 100644 --- a/ocis/docker/Dockerfile.linux.amd64 +++ b/ocis/docker/Dockerfile.linux.amd64 @@ -1,4 +1,4 @@ -FROM amd64/alpine:3.13 +FROM amd64/alpine:3.14 ARG VERSION="" ARG REVISION="" @@ -21,11 +21,30 @@ LABEL maintainer="ownCloud GmbH " \ org.opencontainers.image.version="${VERSION}" \ org.opencontainers.image.revision="${REVISION}" +RUN addgroup -g 700 -S ocis-group && \ + adduser -S --ingroup ocis-group --uid 700 ocis-user + +RUN mkdir -p /var/tmp/ocis && \ + chown -R ocis-user:ocis-group /var/tmp/ocis && \ + chmod -R 777 /var/tmp/ocis + +# default artifact location for autogenerated certifaces +# needs to be a static location because of the docker uid switch mechanism +ENV GLAUTH_LDAPS_CERT=/var/tmp/ocis/.config/ldap/ldaps.crt \ + GLAUTH_LDAPS_KEY=/var/tmp/ocis/.config/ldap/ldaps.key \ + IDP_TRANSPORT_TLS_CERT=/var/tmp/ocis/.config/idp/server.crt \ + IDP_TRANSPORT_TLS_KEY=/var/tmp/ocis/.config/idp/server.key \ + PROXY_TRANSPORT_TLS_CERT=/var/tmp/ocis/.config/proxy/server.crt \ + PROXY_TRANSPORT_TLS_KEY=/var/tmp/ocis/.config/proxy/server.key + +VOLUME [ "/var/tmp/ocis" ] +WORKDIR /var/tmp/ocis + +USER ocis-user + EXPOSE 9200/tcp ENTRYPOINT ["/usr/bin/ocis"] CMD ["server"] COPY dist/binaries/ocis-linux-amd64 /usr/bin/ocis - -VOLUME [ "/var/tmp/ocis" ] diff --git a/ocis/docker/Dockerfile.linux.arm b/ocis/docker/Dockerfile.linux.arm index f0ddbb32a..ab3e30353 100644 --- a/ocis/docker/Dockerfile.linux.arm +++ b/ocis/docker/Dockerfile.linux.arm @@ -1,4 +1,4 @@ -FROM arm32v6/alpine:3.13 +FROM arm32v6/alpine:3.14 ARG VERSION="" ARG REVISION="" @@ -21,11 +21,30 @@ LABEL maintainer="ownCloud GmbH " \ org.opencontainers.image.version="${VERSION}" \ org.opencontainers.image.revision="${REVISION}" +RUN addgroup -g 700 -S ocis-group && \ + adduser -S --ingroup ocis-group --uid 700 ocis-user + +RUN mkdir -p /var/tmp/ocis && \ + chown -R ocis-user:ocis-group /var/tmp/ocis && \ + chmod -R 777 /var/tmp/ocis + +# default artifact location for autogenerated certifaces +# needs to be a static location because of the docker uid switch mechanism +ENV GLAUTH_LDAPS_CERT=/var/tmp/ocis/.config/ldap/ldaps.crt \ + GLAUTH_LDAPS_KEY=/var/tmp/ocis/.config/ldap/ldaps.key \ + IDP_TRANSPORT_TLS_CERT=/var/tmp/ocis/.config/idp/server.crt \ + IDP_TRANSPORT_TLS_KEY=/var/tmp/ocis/.config/idp/server.key \ + PROXY_TRANSPORT_TLS_CERT=/var/tmp/ocis/.config/proxy/server.crt \ + PROXY_TRANSPORT_TLS_KEY=/var/tmp/ocis/.config/proxy/server.key + +VOLUME [ "/var/tmp/ocis" ] +WORKDIR /var/tmp/ocis + +USER ocis-user + EXPOSE 9200/tcp ENTRYPOINT ["/usr/bin/ocis"] CMD ["server"] COPY dist/binaries/ocis-linux-arm /usr/bin/ocis - -VOLUME [ "/var/tmp/ocis" ] diff --git a/ocis/docker/Dockerfile.linux.arm64 b/ocis/docker/Dockerfile.linux.arm64 index 3e1f4f555..12c636183 100644 --- a/ocis/docker/Dockerfile.linux.arm64 +++ b/ocis/docker/Dockerfile.linux.arm64 @@ -1,4 +1,4 @@ -FROM arm64v8/alpine:3.13 +FROM arm64v8/alpine:3.14 ARG VERSION="" ARG REVISION="" @@ -21,11 +21,30 @@ LABEL maintainer="ownCloud GmbH " \ org.opencontainers.image.version="${VERSION}" \ org.opencontainers.image.revision="${REVISION}" +RUN addgroup -g 700 -S ocis-group && \ + adduser -S --ingroup ocis-group --uid 700 ocis-user + +RUN mkdir -p /var/tmp/ocis && \ + chown -R ocis-user:ocis-group /var/tmp/ocis && \ + chmod -R 777 /var/tmp/ocis + +# default artifact location for autogenerated certifaces +# needs to be a static location because of the docker uid switch mechanism +ENV GLAUTH_LDAPS_CERT=/var/tmp/ocis/.config/ldap/ldaps.crt \ + GLAUTH_LDAPS_KEY=/var/tmp/ocis/.config/ldap/ldaps.key \ + IDP_TRANSPORT_TLS_CERT=/var/tmp/ocis/.config/idp/server.crt \ + IDP_TRANSPORT_TLS_KEY=/var/tmp/ocis/.config/idp/server.key \ + PROXY_TRANSPORT_TLS_CERT=/var/tmp/ocis/.config/proxy/server.crt \ + PROXY_TRANSPORT_TLS_KEY=/var/tmp/ocis/.config/proxy/server.key + +VOLUME [ "/var/tmp/ocis" ] +WORKDIR /var/tmp/ocis + +USER ocis-user + EXPOSE 9200/tcp ENTRYPOINT ["/usr/bin/ocis"] CMD ["server"] COPY dist/binaries/ocis-linux-arm64 /usr/bin/ocis - -VOLUME [ "/var/tmp/ocis" ] From 1468abe4e92cc1edd0416dd24057ed49cb2a8d49 Mon Sep 17 00:00:00 2001 From: Willy Kloucek Date: Thu, 12 Aug 2021 12:35:26 +0200 Subject: [PATCH 05/12] change USER statement to use the UID --- ocis/docker/Dockerfile.linux.amd64 | 2 +- ocis/docker/Dockerfile.linux.arm | 2 +- ocis/docker/Dockerfile.linux.arm64 | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ocis/docker/Dockerfile.linux.amd64 b/ocis/docker/Dockerfile.linux.amd64 index 4d2b1b39a..6a0f7c04d 100644 --- a/ocis/docker/Dockerfile.linux.amd64 +++ b/ocis/docker/Dockerfile.linux.amd64 @@ -40,7 +40,7 @@ ENV GLAUTH_LDAPS_CERT=/var/tmp/ocis/.config/ldap/ldaps.crt \ VOLUME [ "/var/tmp/ocis" ] WORKDIR /var/tmp/ocis -USER ocis-user +USER 700 EXPOSE 9200/tcp diff --git a/ocis/docker/Dockerfile.linux.arm b/ocis/docker/Dockerfile.linux.arm index ab3e30353..278975ab7 100644 --- a/ocis/docker/Dockerfile.linux.arm +++ b/ocis/docker/Dockerfile.linux.arm @@ -40,7 +40,7 @@ ENV GLAUTH_LDAPS_CERT=/var/tmp/ocis/.config/ldap/ldaps.crt \ VOLUME [ "/var/tmp/ocis" ] WORKDIR /var/tmp/ocis -USER ocis-user +USER 700 EXPOSE 9200/tcp diff --git a/ocis/docker/Dockerfile.linux.arm64 b/ocis/docker/Dockerfile.linux.arm64 index 12c636183..5c59bf3d8 100644 --- a/ocis/docker/Dockerfile.linux.arm64 +++ b/ocis/docker/Dockerfile.linux.arm64 @@ -40,7 +40,7 @@ ENV GLAUTH_LDAPS_CERT=/var/tmp/ocis/.config/ldap/ldaps.crt \ VOLUME [ "/var/tmp/ocis" ] WORKDIR /var/tmp/ocis -USER ocis-user +USER 700 EXPOSE 9200/tcp From a8d78c06cd30d1e0bb9064f5e6373d3da6f08030 Mon Sep 17 00:00:00 2001 From: Willy Kloucek Date: Thu, 12 Aug 2021 15:00:46 +0200 Subject: [PATCH 06/12] use uid and gid 1000 --- ocis/docker/Dockerfile.linux.amd64 | 6 +++--- ocis/docker/Dockerfile.linux.arm | 6 +++--- ocis/docker/Dockerfile.linux.arm64 | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/ocis/docker/Dockerfile.linux.amd64 b/ocis/docker/Dockerfile.linux.amd64 index 6a0f7c04d..57bbc44da 100644 --- a/ocis/docker/Dockerfile.linux.amd64 +++ b/ocis/docker/Dockerfile.linux.amd64 @@ -21,8 +21,8 @@ LABEL maintainer="ownCloud GmbH " \ org.opencontainers.image.version="${VERSION}" \ org.opencontainers.image.revision="${REVISION}" -RUN addgroup -g 700 -S ocis-group && \ - adduser -S --ingroup ocis-group --uid 700 ocis-user +RUN addgroup -g 1000 -S ocis-group && \ + adduser -S --ingroup ocis-group --uid 1000 ocis-user RUN mkdir -p /var/tmp/ocis && \ chown -R ocis-user:ocis-group /var/tmp/ocis && \ @@ -40,7 +40,7 @@ ENV GLAUTH_LDAPS_CERT=/var/tmp/ocis/.config/ldap/ldaps.crt \ VOLUME [ "/var/tmp/ocis" ] WORKDIR /var/tmp/ocis -USER 700 +USER 1000 EXPOSE 9200/tcp diff --git a/ocis/docker/Dockerfile.linux.arm b/ocis/docker/Dockerfile.linux.arm index 278975ab7..ed6ce63f5 100644 --- a/ocis/docker/Dockerfile.linux.arm +++ b/ocis/docker/Dockerfile.linux.arm @@ -21,8 +21,8 @@ LABEL maintainer="ownCloud GmbH " \ org.opencontainers.image.version="${VERSION}" \ org.opencontainers.image.revision="${REVISION}" -RUN addgroup -g 700 -S ocis-group && \ - adduser -S --ingroup ocis-group --uid 700 ocis-user +RUN addgroup -g 1000 -S ocis-group && \ + adduser -S --ingroup ocis-group --uid 1000 ocis-user RUN mkdir -p /var/tmp/ocis && \ chown -R ocis-user:ocis-group /var/tmp/ocis && \ @@ -40,7 +40,7 @@ ENV GLAUTH_LDAPS_CERT=/var/tmp/ocis/.config/ldap/ldaps.crt \ VOLUME [ "/var/tmp/ocis" ] WORKDIR /var/tmp/ocis -USER 700 +USER 1000 EXPOSE 9200/tcp diff --git a/ocis/docker/Dockerfile.linux.arm64 b/ocis/docker/Dockerfile.linux.arm64 index 5c59bf3d8..35892e865 100644 --- a/ocis/docker/Dockerfile.linux.arm64 +++ b/ocis/docker/Dockerfile.linux.arm64 @@ -21,8 +21,8 @@ LABEL maintainer="ownCloud GmbH " \ org.opencontainers.image.version="${VERSION}" \ org.opencontainers.image.revision="${REVISION}" -RUN addgroup -g 700 -S ocis-group && \ - adduser -S --ingroup ocis-group --uid 700 ocis-user +RUN addgroup -g 1000 -S ocis-group && \ + adduser -S --ingroup ocis-group --uid 1000 ocis-user RUN mkdir -p /var/tmp/ocis && \ chown -R ocis-user:ocis-group /var/tmp/ocis && \ @@ -40,7 +40,7 @@ ENV GLAUTH_LDAPS_CERT=/var/tmp/ocis/.config/ldap/ldaps.crt \ VOLUME [ "/var/tmp/ocis" ] WORKDIR /var/tmp/ocis -USER 700 +USER 1000 EXPOSE 9200/tcp From 41b26a3eb7eb5cea9a4f9df412ad8350a8d7a6f4 Mon Sep 17 00:00:00 2001 From: Willy Kloucek Date: Thu, 12 Aug 2021 15:06:46 +0200 Subject: [PATCH 07/12] add changelog --- changelog/unreleased/docker-image-non-root-user.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 changelog/unreleased/docker-image-non-root-user.md diff --git a/changelog/unreleased/docker-image-non-root-user.md b/changelog/unreleased/docker-image-non-root-user.md new file mode 100644 index 000000000..fae680670 --- /dev/null +++ b/changelog/unreleased/docker-image-non-root-user.md @@ -0,0 +1,7 @@ +Enhancement: Use non root user for the owncloud/ocis docker image + +The owncloud/ocis docker image now uses a non root user and enables you to set a different user with the docker `--user` parameter. The default user has the UID 1000 is part of a group with the GID 1000. + +This is a breaking change for existing docker deployments. The permission on the files and folders in persistent volumes need to be changed to the UID and GID used for oCIS (default 1000:1000 if not changed by the user). + +https://github.com/owncloud/ocis/pull/2380 From b8150f25b88a410a573fc68b259b223ce194a36b Mon Sep 17 00:00:00 2001 From: David Christofas Date: Thu, 12 Aug 2021 13:57:58 +0200 Subject: [PATCH 08/12] switch jwt library The old library github.com/dgrijalva/jwt-go is now unmaintained and was replaced by the community maintained fork github.com/golang-jwt/jwt --- changelog/unreleased/switch-jwt-lib.md | 5 +++ go.mod | 4 +-- go.sum | 6 ++-- proxy/pkg/middleware/oidc_auth.go | 46 ++++++++++++-------------- 4 files changed, 31 insertions(+), 30 deletions(-) create mode 100644 changelog/unreleased/switch-jwt-lib.md diff --git a/changelog/unreleased/switch-jwt-lib.md b/changelog/unreleased/switch-jwt-lib.md new file mode 100644 index 000000000..a6b7fee26 --- /dev/null +++ b/changelog/unreleased/switch-jwt-lib.md @@ -0,0 +1,5 @@ +Enhancement: Replace unmaintained jwt library + +The old library [github.com/dgrijalva/jwt-go](https://github.com/dgrijalva/jwt-go) is unmaintained and was replaced by the community maintained fork [github.com/golang-jwt/jwt](https://github.com/golang-jwt/jwt). + +https://github.com/owncloud/ocis/pull/2386 diff --git a/go.mod b/go.mod index a4fd85a03..64f19033e 100644 --- a/go.mod +++ b/go.mod @@ -26,7 +26,6 @@ require ( github.com/cs3org/go-cs3apis v0.0.0-20210802070913-970eec344e59 github.com/cs3org/reva v1.11.1-0.20210809134415-3fe79c870fb5 github.com/cznic/b v0.0.0-20181122101859-a26611c4d92d // indirect - github.com/dgrijalva/jwt-go v3.2.0+incompatible github.com/disintegration/imaging v1.6.2 github.com/glauth/glauth v1.1.3-0.20210729125545-b9aecdfcac31 github.com/go-chi/chi v4.1.2+incompatible @@ -34,6 +33,7 @@ require ( github.com/go-logr/logr v0.4.0 github.com/go-ozzo/ozzo-validation/v4 v4.2.1 github.com/gofrs/uuid v3.3.0+incompatible + github.com/golang-jwt/jwt/v4 v4.0.0 github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 github.com/golang/protobuf v1.5.2 github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00 // indirect @@ -42,7 +42,7 @@ require ( github.com/iancoleman/strcase v0.1.3 github.com/jmhodges/levigo v1.0.0 // indirect github.com/justinas/alice v1.2.0 - github.com/libregraph/lico v0.34.1-0.20210803054646-b584e0372224 // indirect + github.com/libregraph/lico v0.34.1-0.20210803054646-b584e0372224 github.com/mennanov/fieldmask-utils v0.3.3 github.com/micro/cli/v2 v2.1.2 github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 diff --git a/go.sum b/go.sum index b15eaead3..0e7806054 100644 --- a/go.sum +++ b/go.sum @@ -365,7 +365,6 @@ github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31 h1:gclg6gY70GLy github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= github.com/go-acme/lego/v3 v3.4.0/go.mod h1:xYbLDuxq3Hy4bMUT1t9JIuz6GWIWb3m5X+TeTHYaT7M= github.com/go-asn1-ber/asn1-ber v1.3.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= -github.com/go-asn1-ber/asn1-ber v1.4.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-asn1-ber/asn1-ber v1.5.1 h1:pDbRAunXzIUXfx4CB2QJFv5IuPiuoW+sWvr/Us009o8= github.com/go-asn1-ber/asn1-ber v1.5.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-chi/chi v4.1.2+incompatible h1:fGFk2Gmi/YKXk0OmGfBh0WgmN3XB8lVnEyNz34tQRec= @@ -454,6 +453,8 @@ github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69 github.com/goji/httpauth v0.0.0-20160601135302-2da839ab0f4d/go.mod h1:nnjvkQ9ptGaCkuDUx6wNykzzlUixGxvkme+H/lnzb+A= github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= +github.com/golang-jwt/jwt/v4 v4.0.0 h1:RAqyYixv1p7uEnocuy8P1nru5wprCh/MH2BIlW5z5/o= +github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= @@ -955,7 +956,6 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.0.10/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= @@ -1755,8 +1755,6 @@ sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck= sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= -stash.kopano.io/kc/konnect v0.34.0 h1:aKjZpLu8fvrrqVvNU9b2vKZOn8lUusXLoycLWgMi3o0= -stash.kopano.io/kc/konnect v0.34.0/go.mod h1:GV6AxroXyHte83EsiJXA5ZygzofQ48zXCJ3qX9bK1JY= stash.kopano.io/kgol/kcc-go/v5 v5.0.1 h1:urR9hOR6TnTKjGkzZKac/a9cA8ws1WecWLTgiYubLQw= stash.kopano.io/kgol/kcc-go/v5 v5.0.1/go.mod h1:0ZmjWapy3zp+TAjZI6iCrcfh+BthZbB2WM1VfhDgNB4= stash.kopano.io/kgol/ksurveyclient-go v0.6.0/go.mod h1:LJMDQBROS2oXxBN04eSI6j1KhgWlqMFd8xKjXV4Irtw= diff --git a/proxy/pkg/middleware/oidc_auth.go b/proxy/pkg/middleware/oidc_auth.go index f225dd96b..81f05acfd 100644 --- a/proxy/pkg/middleware/oidc_auth.go +++ b/proxy/pkg/middleware/oidc_auth.go @@ -2,17 +2,17 @@ package middleware import ( "context" - "encoding/json" "net/http" "strings" "time" - "github.com/dgrijalva/jwt-go" + "github.com/golang-jwt/jwt/v4" gOidc "github.com/coreos/go-oidc" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/ocis-pkg/oidc" "github.com/owncloud/ocis/ocis-pkg/sync" + "github.com/owncloud/ocis/proxy/pkg/config" "golang.org/x/oauth2" ) @@ -27,12 +27,13 @@ func OIDCAuth(optionSetters ...Option) func(next http.Handler) http.Handler { tokenCache := sync.NewCache(options.UserinfoCacheSize) h := oidcAuth{ - logger: options.Logger, - providerFunc: options.OIDCProviderFunc, - httpClient: options.HTTPClient, - oidcIss: options.OIDCIss, - tokenCache: &tokenCache, - tokenCacheTTL: options.UserinfoCacheTTL, + logger: options.Logger, + providerFunc: options.OIDCProviderFunc, + httpClient: options.HTTPClient, + oidcIss: options.OIDCIss, + TokenManagerConfig: options.TokenManagerConfig, + tokenCache: &tokenCache, + tokenCacheTTL: options.UserinfoCacheTTL, } return func(next http.Handler) http.Handler { @@ -69,13 +70,14 @@ func OIDCAuth(optionSetters ...Option) func(next http.Handler) http.Handler { } type oidcAuth struct { - logger log.Logger - provider OIDCProvider - providerFunc func() (OIDCProvider, error) - httpClient *http.Client - oidcIss string - tokenCache *sync.Cache - tokenCacheTTL time.Duration + logger log.Logger + provider OIDCProvider + providerFunc func() (OIDCProvider, error) + httpClient *http.Client + oidcIss string + tokenCache *sync.Cache + tokenCacheTTL time.Duration + TokenManagerConfig config.TokenManager } func (m oidcAuth) getClaims(token string, req *http.Request) (claims map[string]interface{}, status int) { @@ -124,19 +126,15 @@ func (m oidcAuth) getClaims(token string, req *http.Request) (claims map[string] func (m oidcAuth) extractExpiration(token string) time.Time { defaultExpiration := time.Now().Add(m.tokenCacheTTL) - s := strings.SplitN(token, ".", 4) - if len(s) != 3 { - return defaultExpiration - } - - b, err := jwt.DecodeSegment(s[1]) + t, err := jwt.Parse(token, func(t *jwt.Token) (interface{}, error) { + return []byte(m.TokenManagerConfig.JWTSecret), nil + }) if err != nil { return defaultExpiration } - at := &jwt.StandardClaims{} - err = json.Unmarshal(b, at) - if err != nil || at.ExpiresAt == 0 { + at, ok := t.Claims.(jwt.StandardClaims) + if !ok || at.ExpiresAt == 0 { return defaultExpiration } From 3bc60510ce3521f3669389f75658d4e70b31b0a7 Mon Sep 17 00:00:00 2001 From: David Christofas Date: Thu, 12 Aug 2021 17:14:41 +0200 Subject: [PATCH 09/12] use go-chi middlewares go-chi already delivers the middlewares we need so we don't need to import other libraries for that. --- accounts/pkg/server/http/server.go | 5 +++-- go.mod | 2 -- go.sum | 6 ------ graph-explorer/pkg/server/http/server.go | 5 +++-- graph/pkg/server/http/server.go | 3 ++- graph/pkg/service/v0/errorcode/errorcode.go | 11 +++++------ idp/pkg/server/http/server.go | 5 +++-- ocis-pkg/middleware/realip.go | 18 ------------------ ocis-pkg/middleware/requestid.go | 12 ------------ ocis-pkg/service/debug/service.go | 5 +++-- ocs/pkg/server/http/server.go | 5 +++-- onlyoffice/pkg/server/http/server.go | 5 +++-- proxy/pkg/command/server.go | 6 +++--- settings/pkg/server/http/server.go | 5 +++-- web/pkg/server/http/server.go | 5 +++-- webdav/pkg/server/http/server.go | 5 +++-- 16 files changed, 37 insertions(+), 66 deletions(-) delete mode 100644 ocis-pkg/middleware/realip.go delete mode 100644 ocis-pkg/middleware/requestid.go diff --git a/accounts/pkg/server/http/server.go b/accounts/pkg/server/http/server.go index a71ca6f8f..78de9d928 100644 --- a/accounts/pkg/server/http/server.go +++ b/accounts/pkg/server/http/server.go @@ -3,6 +3,7 @@ package http import ( "github.com/asim/go-micro/v3" "github.com/go-chi/chi" + chimiddleware "github.com/go-chi/chi/middleware" "github.com/owncloud/ocis/accounts/pkg/assets" "github.com/owncloud/ocis/accounts/pkg/proto/v0" "github.com/owncloud/ocis/accounts/pkg/version" @@ -28,8 +29,8 @@ func Server(opts ...Option) http.Service { mux := chi.NewMux() - mux.Use(middleware.RealIP) - mux.Use(middleware.RequestID) + mux.Use(chimiddleware.RealIP) + mux.Use(chimiddleware.RequestID) mux.Use(middleware.NoCache) mux.Use(middleware.Cors) mux.Use(middleware.Secure) diff --git a/go.mod b/go.mod index 134f67d7c..c92771161 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,6 @@ require ( contrib.go.opencensus.io/exporter/zipkin v0.1.2 github.com/CiscoM31/godata v0.0.0-20201003040028-eadcd34e7f06 github.com/GeertJohan/yubigo v0.0.0-20190917122436-175bc097e60e - github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee github.com/asim/go-micro/plugins/client/grpc/v3 v3.0.0-20210408173139-0d57213d3f5c github.com/asim/go-micro/plugins/logger/zerolog/v3 v3.0.0-20210217182006-0f0ace1a44a9 github.com/asim/go-micro/plugins/registry/etcd/v3 v3.0.0-20210408173139-0d57213d3f5c @@ -63,7 +62,6 @@ require ( github.com/stretchr/testify v1.7.0 github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c // indirect github.com/thejerf/suture/v4 v4.0.1 - github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce github.com/yaegashi/msgraph.go v0.1.4 go.etcd.io/etcd/pkg/v3 v3.5.0-pre // indirect go.opencensus.io v0.23.0 diff --git a/go.sum b/go.sum index f7c126ad9..beb2ec4d4 100644 --- a/go.sum +++ b/go.sum @@ -126,8 +126,6 @@ github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:l github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 h1:4daAzAu0S6Vi7/lbWECcX0j45yZReDZ56BQsrVBOEEY= github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= -github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee h1:3T/l+vMotQ7cDSLWNAn2Vg1SAQ3mdyLgBWWBitSS3uU= -github.com/ascarter/requestid v0.0.0-20170313220838-5b76ab3d4aee/go.mod h1:u7Wtt4WATGGgae9mURNGQQqxAudPKrxfsbSDSGOso+g= github.com/asim/go-micro/plugins/broker/memory/v3 v3.0.0-20210202145831-070250155285 h1:DUDMXvS9LfkgDYBRnKEJh7yPfV+tXOvLqIszqNg4DYc= github.com/asim/go-micro/plugins/broker/memory/v3 v3.0.0-20210202145831-070250155285/go.mod h1:IJrBUDk0XAbi0iDg+sKgkY588m311TkSoEAjU9xu/mc= github.com/asim/go-micro/plugins/client/grpc/v3 v3.0.0-20210205090925-e8167a8b79ed/go.mod h1:Mx1EwGdIq7wl5IkKLaGbHtoIC4yvqUNxJtZu6wxsqiU= @@ -288,8 +286,6 @@ github.com/crewjam/saml v0.4.5/go.mod h1:qCJQpUtZte9R1ZjUBcW8qtCNlinbO363ooNl02S github.com/cs3org/cato v0.0.0-20200828125504-e418fc54dd5e/go.mod h1:XJEZ3/EQuI3BXTp/6DUzFr850vlxq11I6satRtz0YQ4= github.com/cs3org/go-cs3apis v0.0.0-20210802070913-970eec344e59 h1:cj9HxIbmbGn+HPpFP8nZ8oaNUsoFa0+cheCO8FUNoMc= github.com/cs3org/go-cs3apis v0.0.0-20210802070913-970eec344e59/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= -github.com/cs3org/reva v1.11.1-0.20210811142901-ec4099da830e h1:/gJanj5PuKzY51Z2Cp01DjHT2U1HLnEUSDrMf9kC7b8= -github.com/cs3org/reva v1.11.1-0.20210811142901-ec4099da830e/go.mod h1:9DgwsoB4cqlPaEC3hT7/NCdgJO7T1bY3kpxvWXc1DkA= github.com/cs3org/reva v1.11.1-0.20210812105259-756bdced1d22 h1:RZxu/fWJiTmu8fT6pWfu0fdKq7ZUXAZI4TndUfiUIYI= github.com/cs3org/reva v1.11.1-0.20210812105259-756bdced1d22/go.mod h1:9DgwsoB4cqlPaEC3hT7/NCdgJO7T1bY3kpxvWXc1DkA= github.com/cznic/b v0.0.0-20181122101859-a26611c4d92d h1:SwD98825d6bdB+pEuTxWOXiSjBrHdOl/UVp75eI7JT8= @@ -1110,8 +1106,6 @@ github.com/tinylib/msgp v1.1.0 h1:9fQd+ICuRIu/ue4vxJZu6/LzxN0HwMds2nq/0cFvxHU= github.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce h1:fb190+cK2Xz/dvi9Hv8eCYJYvIGUTN2/KLq1pT6CjEc= -github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce/go.mod h1:o8v6yHRoik09Xen7gje4m9ERNah1d1PPsVq1VEx9vE4= github.com/transip/gotransip v0.0.0-20190812104329-6d8d9179b66f/go.mod h1:i0f4R4o2HM0m3DZYQWsj6/MEowD57VzoH0v3d7igeFY= github.com/tus/tusd v1.1.0/go.mod h1:3DWPOdeCnjBwKtv98y5dSws3itPqfce5TVa0s59LRiA= github.com/tus/tusd v1.1.1-0.20200416115059-9deabf9d80c2 h1:rcji4q9wMuSrz0tZt3kgIr/3WsB5kUqFja6RrgeCGEo= diff --git a/graph-explorer/pkg/server/http/server.go b/graph-explorer/pkg/server/http/server.go index 5650948af..677b8c1af 100644 --- a/graph-explorer/pkg/server/http/server.go +++ b/graph-explorer/pkg/server/http/server.go @@ -2,6 +2,7 @@ package http import ( "github.com/asim/go-micro/v3" + chimiddleware "github.com/go-chi/chi/middleware" svc "github.com/owncloud/ocis/graph-explorer/pkg/service/v0" "github.com/owncloud/ocis/graph-explorer/pkg/version" "github.com/owncloud/ocis/ocis-pkg/middleware" @@ -26,8 +27,8 @@ func Server(opts ...Option) (http.Service, error) { svc.Logger(options.Logger), svc.Config(options.Config), svc.Middleware( - middleware.RealIP, - middleware.RequestID, + chimiddleware.RealIP, + chimiddleware.RequestID, middleware.NoCache, middleware.Cors, middleware.Secure, diff --git a/graph/pkg/server/http/server.go b/graph/pkg/server/http/server.go index 0526ce0ef..a4025857a 100644 --- a/graph/pkg/server/http/server.go +++ b/graph/pkg/server/http/server.go @@ -2,6 +2,7 @@ package http import ( "github.com/asim/go-micro/v3" + chimiddleware "github.com/go-chi/chi/middleware" graphMiddleware "github.com/owncloud/ocis/graph/pkg/middleware" svc "github.com/owncloud/ocis/graph/pkg/service/v0" "github.com/owncloud/ocis/graph/pkg/version" @@ -28,7 +29,7 @@ func Server(opts ...Option) (http.Service, error) { svc.Logger(options.Logger), svc.Config(options.Config), svc.Middleware( - middleware.RequestID, + chimiddleware.RequestID, middleware.Version( "graph", version.String, diff --git a/graph/pkg/service/v0/errorcode/errorcode.go b/graph/pkg/service/v0/errorcode/errorcode.go index 068e68478..ce20e834c 100644 --- a/graph/pkg/service/v0/errorcode/errorcode.go +++ b/graph/pkg/service/v0/errorcode/errorcode.go @@ -4,8 +4,8 @@ import ( "net/http" "time" + "github.com/go-chi/chi/middleware" "github.com/go-chi/render" - "github.com/ascarter/requestid" msgraph "github.com/owncloud/open-graph-api-go" ) @@ -72,13 +72,12 @@ func (e ErrorCode) Render(w http.ResponseWriter, r *http.Request, status int, ms "date": time.Now().UTC().Format(time.RFC3339), // TODO return client-request-id? } - if id, ok := requestid.FromContext(r.Context()); ok { - innererror["request-id"] = id - } + + innererror["request-id"] = middleware.GetReqID(r.Context()) resp := &msgraph.OdataError{ Error: msgraph.OdataErrorMain{ - Code: e.String(), - Message: msg, + Code: e.String(), + Message: msg, Innererror: &innererror, }, } diff --git a/idp/pkg/server/http/server.go b/idp/pkg/server/http/server.go index 72fab91c8..b86bde7a7 100644 --- a/idp/pkg/server/http/server.go +++ b/idp/pkg/server/http/server.go @@ -5,6 +5,7 @@ import ( "os" "github.com/asim/go-micro/v3" + chimiddleware "github.com/go-chi/chi/middleware" svc "github.com/owncloud/ocis/idp/pkg/service/v0" pkgcrypto "github.com/owncloud/ocis/ocis-pkg/crypto" "github.com/owncloud/ocis/ocis-pkg/middleware" @@ -57,8 +58,8 @@ func Server(opts ...Option) (http.Service, error) { svc.Logger(options.Logger), svc.Config(options.Config), svc.Middleware( - middleware.RealIP, - middleware.RequestID, + chimiddleware.RealIP, + chimiddleware.RequestID, middleware.NoCache, middleware.Cors, middleware.Secure, diff --git a/ocis-pkg/middleware/realip.go b/ocis-pkg/middleware/realip.go deleted file mode 100644 index f68b17399..000000000 --- a/ocis-pkg/middleware/realip.go +++ /dev/null @@ -1,18 +0,0 @@ -package middleware - -import ( - "net/http" - - "github.com/tomasen/realip" -) - -// RealIP is a middleware that sets a http.Request RemoteAddr. -func RealIP(next http.Handler) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if ip := realip.RealIP(r); ip != "" { - r.RemoteAddr = ip - } - - next.ServeHTTP(w, r) - }) -} diff --git a/ocis-pkg/middleware/requestid.go b/ocis-pkg/middleware/requestid.go deleted file mode 100644 index b647464c8..000000000 --- a/ocis-pkg/middleware/requestid.go +++ /dev/null @@ -1,12 +0,0 @@ -package middleware - -import ( - "net/http" - - "github.com/ascarter/requestid" -) - -// RequestID is a convenient middleware to inject a request id. -func RequestID(next http.Handler) http.Handler { - return requestid.RequestIDHandler(next) -} diff --git a/ocis-pkg/service/debug/service.go b/ocis-pkg/service/debug/service.go index 1771fb074..a3b1761ca 100644 --- a/ocis-pkg/service/debug/service.go +++ b/ocis-pkg/service/debug/service.go @@ -4,6 +4,7 @@ import ( "net/http" "net/http/pprof" + chimiddleware "github.com/go-chi/chi/middleware" "github.com/justinas/alice" "github.com/owncloud/ocis/ocis-pkg/middleware" "github.com/prometheus/client_golang/prometheus/promhttp" @@ -47,8 +48,8 @@ func NewService(opts ...Option) *http.Server { return &http.Server{ Addr: dopts.Address, Handler: alice.New( - middleware.RealIP, - middleware.RequestID, + chimiddleware.RealIP, + chimiddleware.RequestID, middleware.NoCache, middleware.Cors, middleware.Secure, diff --git a/ocs/pkg/server/http/server.go b/ocs/pkg/server/http/server.go index d19dfcc72..2f1b792bb 100644 --- a/ocs/pkg/server/http/server.go +++ b/ocs/pkg/server/http/server.go @@ -2,6 +2,7 @@ package http import ( "github.com/asim/go-micro/v3" + chimiddleware "github.com/go-chi/chi/middleware" "github.com/owncloud/ocis/ocis-pkg/middleware" "github.com/owncloud/ocis/ocis-pkg/service/http" svc "github.com/owncloud/ocis/ocs/pkg/service/v0" @@ -25,8 +26,8 @@ func Server(opts ...Option) (http.Service, error) { svc.Logger(options.Logger), svc.Config(options.Config), svc.Middleware( - middleware.RealIP, - middleware.RequestID, + chimiddleware.RealIP, + chimiddleware.RequestID, middleware.NoCache, middleware.Cors, middleware.Secure, diff --git a/onlyoffice/pkg/server/http/server.go b/onlyoffice/pkg/server/http/server.go index 9d3a1de24..20717f039 100644 --- a/onlyoffice/pkg/server/http/server.go +++ b/onlyoffice/pkg/server/http/server.go @@ -2,6 +2,7 @@ package http import ( "github.com/asim/go-micro/v3" + chimiddleware "github.com/go-chi/chi/middleware" "github.com/owncloud/ocis/ocis-pkg/middleware" "github.com/owncloud/ocis/ocis-pkg/service/http" "github.com/owncloud/ocis/onlyoffice/pkg/assets" @@ -27,8 +28,8 @@ func Server(opts ...Option) (http.Service, error) { svc.Logger(options.Logger), svc.Config(options.Config), svc.Middleware( - middleware.RealIP, - middleware.RequestID, + chimiddleware.RealIP, + chimiddleware.RequestID, middleware.NoCache, middleware.Cors, middleware.Secure, diff --git a/proxy/pkg/command/server.go b/proxy/pkg/command/server.go index 9546b92ab..addd0a187 100644 --- a/proxy/pkg/command/server.go +++ b/proxy/pkg/command/server.go @@ -9,13 +9,13 @@ import ( "time" "github.com/coreos/go-oidc" + chimiddleware "github.com/go-chi/chi/middleware" "github.com/justinas/alice" "github.com/micro/cli/v2" "github.com/oklog/run" acc "github.com/owncloud/ocis/accounts/pkg/proto/v0" "github.com/owncloud/ocis/ocis-pkg/conversions" "github.com/owncloud/ocis/ocis-pkg/log" - pkgmiddleware "github.com/owncloud/ocis/ocis-pkg/middleware" "github.com/owncloud/ocis/ocis-pkg/service/grpc" "github.com/owncloud/ocis/ocis-pkg/sync" "github.com/owncloud/ocis/proxy/pkg/config" @@ -178,8 +178,8 @@ func loadMiddlewares(ctx context.Context, l log.Logger, cfg *config.Config) alic return alice.New( // first make sure we log all requests and redirect to https if necessary - pkgmiddleware.RealIP, - pkgmiddleware.RequestID, + chimiddleware.RealIP, + chimiddleware.RequestID, middleware.AccessLog(l), middleware.HTTPSRedirect, diff --git a/settings/pkg/server/http/server.go b/settings/pkg/server/http/server.go index cbdd8ccea..e643a40aa 100644 --- a/settings/pkg/server/http/server.go +++ b/settings/pkg/server/http/server.go @@ -3,6 +3,7 @@ package http import ( "github.com/asim/go-micro/v3" "github.com/go-chi/chi" + chimiddleware "github.com/go-chi/chi/middleware" "github.com/owncloud/ocis/ocis-pkg/account" "github.com/owncloud/ocis/ocis-pkg/middleware" "github.com/owncloud/ocis/ocis-pkg/service/http" @@ -36,8 +37,8 @@ func Server(opts ...Option) http.Service { mux := chi.NewMux() - mux.Use(middleware.RealIP) - mux.Use(middleware.RequestID) + mux.Use(chimiddleware.RealIP) + mux.Use(chimiddleware.RequestID) mux.Use(middleware.NoCache) mux.Use(middleware.Cors) mux.Use(middleware.Secure) diff --git a/web/pkg/server/http/server.go b/web/pkg/server/http/server.go index d569d6faa..a7b325d51 100644 --- a/web/pkg/server/http/server.go +++ b/web/pkg/server/http/server.go @@ -2,6 +2,7 @@ package http import ( "github.com/asim/go-micro/v3" + chimiddleware "github.com/go-chi/chi/middleware" "github.com/owncloud/ocis/ocis-pkg/middleware" "github.com/owncloud/ocis/ocis-pkg/service/http" webmid "github.com/owncloud/ocis/web/pkg/middleware" @@ -27,8 +28,8 @@ func Server(opts ...Option) (http.Service, error) { svc.Logger(options.Logger), svc.Config(options.Config), svc.Middleware( - middleware.RealIP, - middleware.RequestID, + chimiddleware.RealIP, + chimiddleware.RequestID, middleware.NoCache, middleware.Cors, middleware.Secure, diff --git a/webdav/pkg/server/http/server.go b/webdav/pkg/server/http/server.go index f4b016b2a..0f7802a02 100644 --- a/webdav/pkg/server/http/server.go +++ b/webdav/pkg/server/http/server.go @@ -2,6 +2,7 @@ package http import ( "github.com/asim/go-micro/v3" + chimiddleware "github.com/go-chi/chi/middleware" "github.com/owncloud/ocis/ocis-pkg/middleware" "github.com/owncloud/ocis/ocis-pkg/service/http" svc "github.com/owncloud/ocis/webdav/pkg/service/v0" @@ -25,8 +26,8 @@ func Server(opts ...Option) (http.Service, error) { svc.Logger(options.Logger), svc.Config(options.Config), svc.Middleware( - middleware.RealIP, - middleware.RequestID, + chimiddleware.RealIP, + chimiddleware.RequestID, middleware.NoCache, middleware.Cors, middleware.Secure, From 35b206b23093656cf70331e3bc20ce48ac6bc06b Mon Sep 17 00:00:00 2001 From: David Christofas Date: Thu, 12 Aug 2021 15:25:27 +0000 Subject: [PATCH 10/12] Automated changelog update [skip ci] --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e04e563f4..a894fcc4f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,12 +7,21 @@ The following sections list the changes for unreleased. ## Summary * Bugfix - Specify primary user type for all accounts: [#2364](https://github.com/owncloud/ocis/pull/2364) +* Enhancement - Replace unmaintained jwt library: [#2386](https://github.com/owncloud/ocis/pull/2386) ## Details * Bugfix - Specify primary user type for all accounts: [#2364](https://github.com/owncloud/ocis/pull/2364) https://github.com/owncloud/ocis/pull/2364 + +* Enhancement - Replace unmaintained jwt library: [#2386](https://github.com/owncloud/ocis/pull/2386) + + The old library [github.com/dgrijalva/jwt-go](https://github.com/dgrijalva/jwt-go) + is unmaintained and was replaced by the community maintained fork + [github.com/golang-jwt/jwt](https://github.com/golang-jwt/jwt). + + https://github.com/owncloud/ocis/pull/2386 # Changelog for [1.10.0] (2021-08-06) The following sections list the changes for 1.10.0. From 7bd2d73bb316461e1ae7c1a77e69e4ce580a0e1b Mon Sep 17 00:00:00 2001 From: David Christofas Date: Thu, 12 Aug 2021 17:33:12 +0200 Subject: [PATCH 11/12] update bleve to version 2.1.0 --- changelog/unreleased/update-bleve.md | 5 +++ go.mod | 5 +-- go.sum | 66 ++++++++++++++-------------- store/pkg/service/v0/service.go | 4 +- 4 files changed, 42 insertions(+), 38 deletions(-) create mode 100644 changelog/unreleased/update-bleve.md diff --git a/changelog/unreleased/update-bleve.md b/changelog/unreleased/update-bleve.md new file mode 100644 index 000000000..a32673958 --- /dev/null +++ b/changelog/unreleased/update-bleve.md @@ -0,0 +1,5 @@ +Enhancement: Update bleve to version 2.1.0 + +Updated bleve to the current version. + +https://github.com/owncloud/ocis/pull/2391 diff --git a/go.mod b/go.mod index fa90fc731..d9cf39dd3 100644 --- a/go.mod +++ b/go.mod @@ -21,11 +21,10 @@ require ( github.com/asim/go-micro/plugins/wrapper/monitoring/prometheus/v3 v3.0.0-20210408173139-0d57213d3f5c github.com/asim/go-micro/plugins/wrapper/trace/opencensus/v3 v3.0.0-20210408173139-0d57213d3f5c github.com/asim/go-micro/v3 v3.5.1-0.20210217182006-0f0ace1a44a9 - github.com/blevesearch/bleve v1.0.9 + github.com/blevesearch/bleve/v2 v2.1.0 github.com/coreos/go-oidc v2.2.1+incompatible github.com/cs3org/go-cs3apis v0.0.0-20210802070913-970eec344e59 github.com/cs3org/reva v1.11.1-0.20210812105259-756bdced1d22 - github.com/cznic/b v0.0.0-20181122101859-a26611c4d92d // indirect github.com/disintegration/imaging v1.6.2 github.com/glauth/glauth v1.1.3-0.20210729125545-b9aecdfcac31 github.com/go-chi/chi v4.1.2+incompatible @@ -40,7 +39,6 @@ require ( github.com/gorilla/mux v1.8.0 github.com/grpc-ecosystem/grpc-gateway/v2 v2.2.0 github.com/iancoleman/strcase v0.1.3 - github.com/jmhodges/levigo v1.0.0 // indirect github.com/justinas/alice v1.2.0 github.com/libregraph/lico v0.34.1-0.20210803054646-b584e0372224 github.com/mennanov/fieldmask-utils v0.3.3 @@ -61,7 +59,6 @@ require ( github.com/spf13/cobra v1.1.3 github.com/spf13/viper v1.8.1 github.com/stretchr/testify v1.7.0 - github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c // indirect github.com/thejerf/suture/v4 v4.0.1 github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce github.com/yaegashi/msgraph.go v0.1.4 diff --git a/go.sum b/go.sum index 336a4c3c2..afdc579a7 100644 --- a/go.sum +++ b/go.sum @@ -79,6 +79,7 @@ github.com/CiscoM31/godata v0.0.0-20201003040028-eadcd34e7f06 h1:FKxVU/j9Dd8Je0Y github.com/CiscoM31/godata v0.0.0-20201003040028-eadcd34e7f06/go.mod h1:tjaihnMBH6p5DVnGBksDQQHpErbrLvb9ek6cEWuyc7E= github.com/GeertJohan/yubigo v0.0.0-20190917122436-175bc097e60e h1:Bqtt5C+uVk+vH/t5dmB47uDCTwxw16EYHqvJnmY2aQc= github.com/GeertJohan/yubigo v0.0.0-20190917122436-175bc097e60e/go.mod h1:njRCDrl+1RQ/A/+KVU8Ho2EWAxUSkohOWczdW3dzDG0= +github.com/Julusian/godocdown v0.0.0-20170816220326-6d19f8ff2df8/go.mod h1:INZr5t32rG59/5xeltqoCJoNY7e5x/3xoY9WSWVWg74= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Masterminds/goutils v1.1.0 h1:zukEsf/1JZwCMgHiK3GZftabmxiCw4apj3a28RPBiVg= github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= @@ -92,8 +93,9 @@ github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAE github.com/OpenDNS/vegadns2client v0.0.0-20180418235048-a3fa4a771d87/go.mod h1:iGLljf5n9GjT6kc0HBvyI1nOKnGQbNB66VzSNbK5iks= github.com/ReneKroon/ttlcache/v2 v2.7.0 h1:sZeaSwA2UN/y/h7CvkW15Kovd2Oiy76CBDORiOwHPwI= github.com/ReneKroon/ttlcache/v2 v2.7.0/go.mod h1:mBxvsNY+BT8qLLd6CuAJubbKo6r0jh3nb5et22bbfGY= -github.com/RoaringBitmap/roaring v0.4.21 h1:WJ/zIlNX4wQZ9x8Ey33O1UaD9TCTakYsdLFSBcTwH+8= -github.com/RoaringBitmap/roaring v0.4.21/go.mod h1:D0gp8kJQgE1A4LQ5wFLggQEyvDi06Mq5mKs52e1TwOo= +github.com/RoaringBitmap/roaring v0.4.23/go.mod h1:D0gp8kJQgE1A4LQ5wFLggQEyvDi06Mq5mKs52e1TwOo= +github.com/RoaringBitmap/roaring v0.7.3 h1:RwirWpvFONt2EwHHEHhER7S4BHZkyj3qL5LXLlnQPZ4= +github.com/RoaringBitmap/roaring v0.7.3/go.mod h1:jdT9ykXwHFNdJbEtxePexlFYH9LXucApeS0/+/g+p1I= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= @@ -180,29 +182,40 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bitly/go-simplejson v0.5.0 h1:6IH+V8/tVMab511d5bn4M7EwGXZf9Hj6i2xSwkNEM+Y= github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA= +github.com/bits-and-blooms/bitset v1.2.0 h1:Kn4yilvwNtMACtf1eYDlG8H77R07mZSPbMjLyS07ChA= +github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= -github.com/blevesearch/bleve v1.0.9 h1:kqw/Ank/61UV9/Bx9kCcnfH6qWPgmS8O5LNfpsgzASg= -github.com/blevesearch/bleve v1.0.9/go.mod h1:tb04/rbU29clbtNgorgFd8XdJea4x3ybYaOjWKr+UBU= -github.com/blevesearch/blevex v0.0.0-20190916190636-152f0fe5c040 h1:SjYVcfJVZoCfBlg+fkaq2eoZHTf5HaJfaTeTkOtyfHQ= -github.com/blevesearch/blevex v0.0.0-20190916190636-152f0fe5c040/go.mod h1:WH+MU2F4T0VmSdaPX+Wu5GYoZBrYWdOZWSjzvYcDmqQ= +github.com/blevesearch/bleve/v2 v2.1.0 h1:SmD/DfWFrAP0TNrJagxsOR7nBt+6bUwos1MKzJInC4I= +github.com/blevesearch/bleve/v2 v2.1.0/go.mod h1:49zwlH3gtzAPNNzaaekkGz5T1lB/iDnzN4hS4W0yTHE= +github.com/blevesearch/bleve_index_api v1.0.0/go.mod h1:fiwKS0xLEm+gBRgv5mumf0dhgFr2mDgZah1pqv1c1M4= +github.com/blevesearch/bleve_index_api v1.0.1 h1:nx9++0hnyiGOHJwQQYfsUGzpRdEVE5LsylmmngQvaFk= +github.com/blevesearch/bleve_index_api v1.0.1/go.mod h1:fiwKS0xLEm+gBRgv5mumf0dhgFr2mDgZah1pqv1c1M4= github.com/blevesearch/go-porterstemmer v1.0.3 h1:GtmsqID0aZdCSNiY8SkuPJ12pD4jI+DdXTAn4YRcHCo= github.com/blevesearch/go-porterstemmer v1.0.3/go.mod h1:angGc5Ht+k2xhJdZi511LtmxuEf0OVpvUUNrwmM1P7M= github.com/blevesearch/mmap-go v1.0.2 h1:JtMHb+FgQCTTYIhtMvimw15dJwu1Y5lrZDMOFXVWPk0= github.com/blevesearch/mmap-go v1.0.2/go.mod h1:ol2qBqYaOUsGdm7aRMRrYGgPvnwLe6Y+7LMvAB5IbSA= +github.com/blevesearch/scorch_segment_api/v2 v2.0.1 h1:fd+hPtZ8GsbqPK1HslGp7Vhoik4arZteA/IsCEgOisw= +github.com/blevesearch/scorch_segment_api/v2 v2.0.1/go.mod h1:lq7yK2jQy1yQjtjTfU931aVqz7pYxEudHaDwOt1tXfU= github.com/blevesearch/segment v0.9.0 h1:5lG7yBCx98or7gK2cHMKPukPZ/31Kag7nONpoBt22Ac= github.com/blevesearch/segment v0.9.0/go.mod h1:9PfHYUdQCgHktBgvtUOF4x+pc4/l8rdH0u5spnW85UQ= github.com/blevesearch/snowballstem v0.9.0 h1:lMQ189YspGP6sXvZQ4WZ+MLawfV8wOmPoD/iWeNXm8s= github.com/blevesearch/snowballstem v0.9.0/go.mod h1:PivSj3JMc8WuaFkTSRDW2SlrulNWPl4ABg1tC/hlgLs= -github.com/blevesearch/zap/v11 v11.0.9 h1:wlSrDBeGN1G4M51NQHIXca23ttwUfQpWaK7uhO5lRSo= -github.com/blevesearch/zap/v11 v11.0.9/go.mod h1:47hzinvmY2EvvJruzsSCJpro7so8L1neseaGjrtXHOY= -github.com/blevesearch/zap/v12 v12.0.9 h1:PpatkY+BLVFZf0Ok3/fwgI/I4RU0z5blXFGuQANmqXk= -github.com/blevesearch/zap/v12 v12.0.9/go.mod h1:paQuvxy7yXor+0Mx8p2KNmJgygQbQNN+W6HRfL5Hvwc= -github.com/blevesearch/zap/v13 v13.0.1 h1:NSCM6uKu77Vn/x9nlPp4pE1o/bftqcOWZEHSyZVpGBQ= -github.com/blevesearch/zap/v13 v13.0.1/go.mod h1:XmyNLMvMf8Z5FjLANXwUeDW3e1+o77TTGUWrth7T9WI= -github.com/blevesearch/zap/v14 v14.0.0 h1:HF8Ysjm13qxB0jTGaKLlatNXmJbQD8bY+PrPxm5v4hE= -github.com/blevesearch/zap/v14 v14.0.0/go.mod h1:sUc/gPGJlFbSQ2ZUh/wGRYwkKx+Dg/5p+dd+eq6QMXk= +github.com/blevesearch/upsidedown_store_api v1.0.1 h1:1SYRwyoFLwG3sj0ed89RLtM15amfX2pXlYbFOnF8zNU= +github.com/blevesearch/upsidedown_store_api v1.0.1/go.mod h1:MQDVGpHZrpe3Uy26zJBf/a8h0FZY6xJbthIMm8myH2Q= +github.com/blevesearch/vellum v1.0.5 h1:L5dJ7hKauRVbuH7I8uqLeSK92CPPY6FfrbAmLhAug8A= +github.com/blevesearch/vellum v1.0.5/go.mod h1:atE0EH3fvk43zzS7t1YNdNC7DbmcC3uz+eMD5xZ2OyQ= +github.com/blevesearch/zapx/v11 v11.2.2 h1:yeHRnGA4UPxVm1roONbp7VRm+SUx95AleE4rU8w4pc4= +github.com/blevesearch/zapx/v11 v11.2.2/go.mod h1:qunXXAB8awrvPgnHdqbPFMW01N93bhKFxkEWxYQgp8w= +github.com/blevesearch/zapx/v12 v12.2.2 h1:aK6r0DbMMI8+MnrqkmFwWxUr8ZwVwQf8owbdVv7uhKs= +github.com/blevesearch/zapx/v12 v12.2.2/go.mod h1:6reJkgolYR1r7GC6SwbuRGhvMWin+Ou/n2Cd7DdvYzY= +github.com/blevesearch/zapx/v13 v13.2.2 h1:6oa7kZhywrRT3CeuN0bIZC6EviQkbPOQpvdR5pnxCks= +github.com/blevesearch/zapx/v13 v13.2.2/go.mod h1:EeLDRSUIMxBFwD4hZxVioHLR7gpY4VF7kdUoImp4Vy8= +github.com/blevesearch/zapx/v14 v14.2.2 h1:lRZCBvQIByW8F+mCoY4uA6Uen2DCj7K+wCh5nVKNxew= +github.com/blevesearch/zapx/v14 v14.2.2/go.mod h1:zb01unR63/DfV2nvyAvgj64K8AKtj7WP6w23jtuHntQ= +github.com/blevesearch/zapx/v15 v15.2.2 h1:5+oWWAQTV3M0UNor05qrZujzxIXVuwtYU3ppZ7Y1aNI= +github.com/blevesearch/zapx/v15 v15.2.2/go.mod h1:I4QVJ432LKkZyNK1kZkh3OweKa+NSblZzIF0YSSExak= github.com/bluele/gcache v0.0.2 h1:WcbfdXICg7G/DGBh1PFfcirkWOQV+v077yF1pSy3DGw= github.com/bluele/gcache v0.0.2/go.mod h1:m15KV+ECjptwSPxKhOhQoAFQVtUFjTVkc3H8o0t/fp0= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY= @@ -269,8 +282,6 @@ github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfc github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/couchbase/ghistogram v0.1.0/go.mod h1:s1Jhy76zqfEecpNWJfWUiKZookAFaiGOEoyzgHt9i7k= github.com/couchbase/moss v0.1.0/go.mod h1:9MaHIaRuy9pvLPUJxB8sh8OrLfyDczECVL37grCIubs= -github.com/couchbase/vellum v1.0.1 h1:qrj9ohvZedvc51S5KzPfJ6P6z0Vqzv7Lx7k3mVc2WOk= -github.com/couchbase/vellum v1.0.1/go.mod h1:FcwrEivFpNi24R3jLOs3n+fs5RnuQnQqCLBJ1uAg1W4= github.com/cpu/goacmedns v0.0.1/go.mod h1:sesf/pNnCYwUevQEQfEwY0Y3DydlQWSGZbaMElOWxok= github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= @@ -288,12 +299,8 @@ github.com/crewjam/saml v0.4.5/go.mod h1:qCJQpUtZte9R1ZjUBcW8qtCNlinbO363ooNl02S github.com/cs3org/cato v0.0.0-20200828125504-e418fc54dd5e/go.mod h1:XJEZ3/EQuI3BXTp/6DUzFr850vlxq11I6satRtz0YQ4= github.com/cs3org/go-cs3apis v0.0.0-20210802070913-970eec344e59 h1:cj9HxIbmbGn+HPpFP8nZ8oaNUsoFa0+cheCO8FUNoMc= github.com/cs3org/go-cs3apis v0.0.0-20210802070913-970eec344e59/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY= -github.com/cs3org/reva v1.11.1-0.20210811142901-ec4099da830e h1:/gJanj5PuKzY51Z2Cp01DjHT2U1HLnEUSDrMf9kC7b8= -github.com/cs3org/reva v1.11.1-0.20210811142901-ec4099da830e/go.mod h1:9DgwsoB4cqlPaEC3hT7/NCdgJO7T1bY3kpxvWXc1DkA= github.com/cs3org/reva v1.11.1-0.20210812105259-756bdced1d22 h1:RZxu/fWJiTmu8fT6pWfu0fdKq7ZUXAZI4TndUfiUIYI= github.com/cs3org/reva v1.11.1-0.20210812105259-756bdced1d22/go.mod h1:9DgwsoB4cqlPaEC3hT7/NCdgJO7T1bY3kpxvWXc1DkA= -github.com/cznic/b v0.0.0-20181122101859-a26611c4d92d h1:SwD98825d6bdB+pEuTxWOXiSjBrHdOl/UVp75eI7JT8= -github.com/cznic/b v0.0.0-20181122101859-a26611c4d92d/go.mod h1:URriBxXwVq5ijiJ12C7iIZqlA69nTlI+LgI6/pwftG8= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -318,11 +325,13 @@ github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3 github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dvyukov/go-fuzz v0.0.0-20210429054444-fca39067bc72/go.mod h1:11Gm+ccJnvAhCNLlf5+cS9KjtbaD5I5zaZpFMsTHWTw= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= github.com/ef-ds/deque v1.0.4-0.20190904040645-54cb57c252a1/go.mod h1:HvODWzv6Y6kBf3Ah2WzN1bHjDUezGLaAhwuWVwfpEJs= +github.com/elazarl/go-bindata-assetfs v1.0.1/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4= github.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg= github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= @@ -361,9 +370,7 @@ github.com/glauth/glauth v1.1.3-0.20210729125545-b9aecdfcac31/go.mod h1:kRuLdqjy github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/gliderlabs/ssh v0.2.2 h1:6zsha5zo/TWhRhwqCD3+EarCAgZ2yN28ipRnGPnwkI0= github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= -github.com/glycerine/go-unsnap-stream v0.0.0-20181221182339-f9677308dec2 h1:Ujru1hufTHVb++eG6OuNDKMxZnGIvF6o/u8q/8h2+I4= github.com/glycerine/go-unsnap-stream v0.0.0-20181221182339-f9677308dec2/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= -github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31 h1:gclg6gY70GLy3PbkQ1AERPfmLMMagS60DKF78eWwLn8= github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= github.com/go-acme/lego/v3 v3.4.0/go.mod h1:xYbLDuxq3Hy4bMUT1t9JIuz6GWIWb3m5X+TeTHYaT7M= github.com/go-asn1-ber/asn1-ber v1.3.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= @@ -644,8 +651,6 @@ github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9Y github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= -github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= -github.com/jmhodges/levigo v1.0.0/go.mod h1:Q6Qx+uH3RAqyK4rFQroq9RL7mdkABMcfhEI+nNuzMJQ= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jonboulle/clockwork v0.2.0/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= @@ -894,7 +899,6 @@ github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAv github.com/pelletier/go-toml v1.9.3 h1:zeC5b1GviRUyKYd6OJPvBU/mcVDVoL1OhT17FCt5dSQ= github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= -github.com/philhofer/fwd v1.0.0 h1:UbZqGr5Y38ApvM/V/jEljVxwocdweyH+vmYvRPBnbqQ= github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= @@ -973,6 +977,7 @@ github.com/rickb777/date v1.12.4 h1:+6IzcCCS/1t17DrmnEvrznyq7nM8vPwir6/UhlyohKw= github.com/rickb777/date v1.12.4/go.mod h1:xP0eo/I5qmUt97yRGClHZfyLZ3ikMw6v6SU5MOGZTE0= github.com/rickb777/plural v1.2.0 h1:5tvEc7UBCZ7l8h/2UeybSkt/uu1DQsZFOFdNevmUhlE= github.com/rickb777/plural v1.2.0/go.mod h1:UdpyWFCGbo3mvK3f/PfZOAOrkjzJlYN/sD46XNWJ+Es= +github.com/robertkrimen/godocdown v0.0.0-20130622164427-0bfa04905481/go.mod h1:C9WhFzY47SzYBIvzFqSvHIR6ROgDo4TtdTuRaOMjF/s= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= @@ -1075,6 +1080,7 @@ github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/y github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/spf13/viper v1.8.1 h1:Kq1fyeebqsBfbjZj4EL7gj2IO0mMaiyjYUWcUsl2O44= github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= +github.com/stephens2424/writerset v1.0.2/go.mod h1:aS2JhsMn6eA7e82oNmW4rfsgAOp9COBTTl8mzkwADnc= github.com/steveyen/gtreap v0.1.0 h1:CjhzTa274PyJLJuMZwIzCO1PfC00oRa8d1Kc78bFXJM= github.com/steveyen/gtreap v0.1.0/go.mod h1:kl/5J7XbrOmlIbYIXdRHDDE5QxHqpk0cmkT7Z4dM9/Y= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= @@ -1096,11 +1102,8 @@ github.com/studio-b12/gowebdav v0.0.0-20200303150724-9380631c29a1/go.mod h1:gCcf github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE= github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA= -github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c h1:g+WoO5jjkqGAzHWCjJB1zZfXPIAaDpzXIEJ0eS6B5Ok= -github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c/go.mod h1:ahpPrc7HpcfEWDQRZEmnXMzHY03mLDYMCxeDzy46i+8= github.com/thanhpk/randstr v1.0.4 h1:IN78qu/bR+My+gHCvMEXhR/i5oriVHcTB/BJJIRTsNo= github.com/thanhpk/randstr v1.0.4/go.mod h1:M/H2P1eNLZzlDwAzpkkkUvoyNNMbzRGhESZuEQk3r0U= github.com/thejerf/suture/v4 v4.0.1 h1:CLnC1wxLAiHA5zTbbvhSWMupVuGe5ZJ7YddWE3lvb4M= @@ -1108,7 +1111,6 @@ github.com/thejerf/suture/v4 v4.0.1/go.mod h1:g0e8vwskm9tI0jRjxrnA6lSr0q6OfPdWJV github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tidwall/pretty v1.1.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/timewasted/linode v0.0.0-20160829202747-37e84520dcf7/go.mod h1:imsgLplxEC/etjIhdr3dNzV3JeT27LbVu5pYWm0JCBY= -github.com/tinylib/msgp v1.1.0 h1:9fQd+ICuRIu/ue4vxJZu6/LzxN0HwMds2nq/0cFvxHU= github.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= @@ -1132,7 +1134,6 @@ github.com/viant/assertly v0.4.8/go.mod h1:aGifi++jvCrUaklKEKT0BU95igDNaqkvz+49u github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMILuUhzM= github.com/vimeo/go-util v1.2.0/go.mod h1:s13SMDTSO7AjH1nbgp707mfN5JFIWUFDU5MDDuRRtKs= github.com/vultr/govultr v0.1.4/go.mod h1:9H008Uxr/C4vFNGLqKx232C206GL0PBHzOP0809bGNA= -github.com/willf/bitset v1.1.10 h1:NotGKqX0KwQ72NUzqrjZq5ipPNDQex9lo3WpaS8L2sc= github.com/willf/bitset v1.1.10/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= github.com/xanzy/ssh-agent v0.2.1 h1:TCbipTQL2JiiCprBWx9frJ2eJlCYT00NmctrHxVAr70= github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= @@ -1159,8 +1160,8 @@ github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxt github.com/zenazn/goji v0.9.1-0.20160507202103-64eb34159fe5/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.4 h1:hi1bXHMVrlQh6WwxAy+qZCV/SYIlqo+Ushwdpa4tAKg= -go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= +go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0= +go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738 h1:VcrIfasaLFkyjk6KNlXQSzO+B0fZcnECiDrKJsfxka0= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= go.etcd.io/etcd/api/v3 v3.0.0-20210204162551-dae29bb719dd h1:qFH5iCZf9f5Q2piEmqSpb3cy+6qnE99hDZc+iXVVnR8= @@ -1527,6 +1528,7 @@ golang.org/x/tools v0.0.0-20200731060945-b5fad4ed8dd6/go.mod h1:njjCfa9FT2d7l9Bc golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20200928182047-19e03678916f/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= diff --git a/store/pkg/service/v0/service.go b/store/pkg/service/v0/service.go index 4545f86a0..60b116e55 100644 --- a/store/pkg/service/v0/service.go +++ b/store/pkg/service/v0/service.go @@ -8,8 +8,8 @@ import ( "path/filepath" merrors "github.com/asim/go-micro/v3/errors" - "github.com/blevesearch/bleve" - "github.com/blevesearch/bleve/analysis/analyzer/keyword" + "github.com/blevesearch/bleve/v2" + "github.com/blevesearch/bleve/v2/analysis/analyzer/keyword" "github.com/owncloud/ocis/ocis-pkg/log" "github.com/owncloud/ocis/store/pkg/config" "github.com/owncloud/ocis/store/pkg/proto/v0" From dbb228349a262e057eae252a2425613f91b57a97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Thu, 12 Aug 2021 20:10:41 +0000 Subject: [PATCH 12/12] Automated changelog update [skip ci] --- CHANGELOG.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a894fcc4f..7af3ce8fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,9 @@ The following sections list the changes for unreleased. ## Summary * Bugfix - Specify primary user type for all accounts: [#2364](https://github.com/owncloud/ocis/pull/2364) +* Enhancement - Use non root user for the owncloud/ocis docker image: [#2380](https://github.com/owncloud/ocis/pull/2380) * Enhancement - Replace unmaintained jwt library: [#2386](https://github.com/owncloud/ocis/pull/2386) +* Enhancement - Update bleve to version 2.1.0: [#2391](https://github.com/owncloud/ocis/pull/2391) ## Details @@ -15,6 +17,18 @@ The following sections list the changes for unreleased. https://github.com/owncloud/ocis/pull/2364 +* Enhancement - Use non root user for the owncloud/ocis docker image: [#2380](https://github.com/owncloud/ocis/pull/2380) + + The owncloud/ocis docker image now uses a non root user and enables you to set a different user + with the docker `--user` parameter. The default user has the UID 1000 is part of a group with the + GID 1000. + + This is a breaking change for existing docker deployments. The permission on the files and + folders in persistent volumes need to be changed to the UID and GID used for oCIS (default + 1000:1000 if not changed by the user). + + https://github.com/owncloud/ocis/pull/2380 + * Enhancement - Replace unmaintained jwt library: [#2386](https://github.com/owncloud/ocis/pull/2386) The old library [github.com/dgrijalva/jwt-go](https://github.com/dgrijalva/jwt-go) @@ -22,6 +36,12 @@ The following sections list the changes for unreleased. [github.com/golang-jwt/jwt](https://github.com/golang-jwt/jwt). https://github.com/owncloud/ocis/pull/2386 + +* Enhancement - Update bleve to version 2.1.0: [#2391](https://github.com/owncloud/ocis/pull/2391) + + Updated bleve to the current version. + + https://github.com/owncloud/ocis/pull/2391 # Changelog for [1.10.0] (2021-08-06) The following sections list the changes for 1.10.0.