diff --git a/ocis/go.mod b/ocis/go.mod index 725a0fa7b2..a49d62b5c8 100644 --- a/ocis/go.mod +++ b/ocis/go.mod @@ -7,6 +7,7 @@ require ( contrib.go.opencensus.io/exporter/ocagent v0.7.0 contrib.go.opencensus.io/exporter/zipkin v0.1.2 github.com/UnnoTed/fileb0x v1.1.4 + github.com/cs3org/reva v1.4.1-0.20201203075131-783e35cbff51 // indirect github.com/go-test/deep v1.0.6 // indirect github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00 // indirect github.com/micro/cli/v2 v2.1.2 @@ -38,7 +39,6 @@ require ( ) replace ( - github.com/cs3org/reva => github.com/labkode/reva v0.0.0-20201202134237-befa4a5708b6 github.com/gomodule/redigo => github.com/gomodule/redigo v1.8.2 github.com/owncloud/ocis/accounts => ../accounts github.com/owncloud/ocis/glauth => ../glauth diff --git a/ocis/go.sum b/ocis/go.sum index 2ef150d9f1..e773832974 100644 --- a/ocis/go.sum +++ b/ocis/go.sum @@ -162,6 +162,8 @@ github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN github.com/aws/aws-sdk-go v1.33.19/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.35.23 h1:SCP0d0XvyJTDmfnHEQPvBaYi3kea1VNUo7uQmkVgFts= github.com/aws/aws-sdk-go v1.35.23/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k= +github.com/aws/aws-sdk-go v1.35.27 h1:F0dUW+kouzchjt4X6kYfYMw1YtQPkA4pihpCDqQMrq8= +github.com/aws/aws-sdk-go v1.35.27/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k= github.com/aws/aws-xray-sdk-go v0.9.4/go.mod h1:XtMKdBQfpVut+tJEwI7+dJFRxxRdxHDyVNp2tHXRq04= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beevik/etree v1.1.0 h1:T0xke/WvNtMoCqgzPhkX2r4rjY3GDZFi+FjpRZY2Jbs= @@ -313,6 +315,8 @@ github.com/cs3org/reva v1.4.1-0.20201130061320-ac85e68e0600 h1:4CKU+R4UNvILzsPrc github.com/cs3org/reva v1.4.1-0.20201130061320-ac85e68e0600/go.mod h1:MTBlfobTE8W2hgXQ9+r+75jpJa1TxD04IZm5TpS9H48= github.com/cs3org/reva v1.4.1-0.20201201074212-8b4cc174b708 h1:uiz1kb5iR6V7GvpX5CW3xeZcbPTvR8P1tlvODTD0zio= github.com/cs3org/reva v1.4.1-0.20201201074212-8b4cc174b708/go.mod h1:MTBlfobTE8W2hgXQ9+r+75jpJa1TxD04IZm5TpS9H48= +github.com/cs3org/reva v1.4.1-0.20201203075131-783e35cbff51 h1:WguydLVNj9tDRAw5cz+TnkY3shiTmbpfBPX2NpDHU2c= +github.com/cs3org/reva v1.4.1-0.20201203075131-783e35cbff51/go.mod h1:UUIurLdFYag/W+3YlAqwFuVvfzF3Ps1Elq1NzsE9kvo= 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/cznic/mathutil v0.0.0-20181122101859-297441e03548 h1:iwZdTE0PVqJCos1vaoKsclOGD3ADKpshg3SRtYBbwso= diff --git a/proxy/pkg/command/server.go b/proxy/pkg/command/server.go index 3780808528..f4dc963d84 100644 --- a/proxy/pkg/command/server.go +++ b/proxy/pkg/command/server.go @@ -321,6 +321,10 @@ func loadMiddlewares(ctx context.Context, l log.Logger, cfg *config.Config) alic // "user-agent":"challenge" locks in for Reva. // Modifies cfg. Spaces don't need to be trimmed as urfavecli takes care of it. User agents with spaces are valid. i.e: // Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:83.0) Gecko/20100101 Firefox/83.0 +// This function works by relying in our format of specifying [user-agent:challenge] and the fact that the user agent +// might contain ":" (colon), so the original string is reversed, split in two parts, by the time it is split we +// have the indexes reversed and the tuple is in the format of [challenge:user-agent], then the same process is applied +// in reverse for each individual part func loadUserAgent(c *cli.Context, cfg *config.Config) error { cfg.Reva.Middleware.Auth.CredentialsByUserAgent = make(map[string]string, 0) locks := c.StringSlice("proxy-user-agent-whitelist") diff --git a/storage/pkg/command/frontend.go b/storage/pkg/command/frontend.go index 06c7fcc684..e67edd4423 100644 --- a/storage/pkg/command/frontend.go +++ b/storage/pkg/command/frontend.go @@ -304,7 +304,12 @@ func Frontend(cfg *config.Config) *cli.Command { // loadUserAgent reads the user-agent-whitelist, since it is a string flag, and attempts to construct a map of // "user-agent":"challenge" locks in for Reva. -// Modifies cfg. Spaces don't need to be trimmed as urfavecli takes care of it. +// Modifies cfg. Spaces don't need to be trimmed as urfavecli takes care of it. User agents with spaces are valid. i.e: +// Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:83.0) Gecko/20100101 Firefox/83.0 +// This function works by relying in our format of specifying [user-agent:challenge] and the fact that the user agent +// might contain ":" (colon), so the original string is reversed, split in two parts, by the time it is split we +// have the indexes reversed and the tuple is in the format of [challenge:user-agent], then the same process is applied +// in reverse for each individual part func loadUserAgent(c *cli.Context, cfg *config.Config) error { cfg.Reva.Frontend.Middleware.Auth.CredentialsByUserAgent = make(map[string]string, 0) locks := c.StringSlice("user-agent-whitelist")