fix: Removed root user flags

This commit is contained in:
jonaustin09
2023-06-01 00:16:01 +04:00
parent 8e86acf20b
commit 04bbe61826
5 changed files with 22 additions and 44 deletions

View File

@@ -24,7 +24,7 @@ import (
"github.com/urfave/cli/v2"
"github.com/versity/versitygw/backend"
"github.com/versity/versitygw/s3api"
"github.com/versity/versitygw/s3api/utils"
"github.com/versity/versitygw/s3api/middlewares"
)
var (
@@ -144,9 +144,7 @@ func runGateway(be backend.Backend) error {
opts = append(opts, s3api.WithTLS(cert))
}
rootUser := utils.GetRootUserCreds()
srv, err := s3api.New(app, be, port, rootUser, opts...)
srv, err := s3api.New(app, be, port, middlewares.AdminUser{AdminAccess: adminAccess, AdminSecret: adminSecret}, opts...)
if err != nil {
return fmt.Errorf("init gateway: %v", err)
}

View File

@@ -32,7 +32,12 @@ const (
iso8601Format = "20060102T150405Z"
)
func VerifyV4Signature(user utils.RootUser) fiber.Handler {
type AdminUser struct {
AdminAccess string
AdminSecret string
}
func VerifyV4Signature(user AdminUser) fiber.Handler {
return func(ctx *fiber.Ctx) error {
authorization := ctx.Get("Authorization")
if authorization == "" {
@@ -79,8 +84,8 @@ func VerifyV4Signature(user utils.RootUser) fiber.Handler {
signer := v4.NewSigner()
signErr := signer.SignHTTP(req.Context(), aws.Credentials{
AccessKeyID: user.Login,
SecretAccessKey: user.Password,
AccessKeyID: user.AdminAccess,
SecretAccessKey: user.AdminSecret,
}, req, hexPayload, creds[3], creds[2], tdate)
if signErr != nil {
return controllers.Responce[any](ctx, nil, s3err.GetAPIError(s3err.ErrAccessDenied))

View File

@@ -21,7 +21,6 @@ import (
"github.com/gofiber/fiber/v2/middleware/logger"
"github.com/versity/versitygw/backend"
"github.com/versity/versitygw/s3api/middlewares"
"github.com/versity/versitygw/s3api/utils"
)
type S3ApiServer struct {
@@ -32,7 +31,7 @@ type S3ApiServer struct {
cert *tls.Certificate
}
func New(app *fiber.App, be backend.Backend, port string, rootUser utils.RootUser, opts ...Option) (*S3ApiServer, error) {
func New(app *fiber.App, be backend.Backend, port string, adminUser middlewares.AdminUser, opts ...Option) (*S3ApiServer, error) {
server := &S3ApiServer{
app: app,
backend: be,
@@ -44,7 +43,7 @@ func New(app *fiber.App, be backend.Backend, port string, rootUser utils.RootUse
opt(server)
}
app.Use(middlewares.VerifyV4Signature(rootUser))
app.Use(middlewares.VerifyV4Signature(adminUser))
app.Use(logger.New())
server.router.Init(app, be)
return server, nil

View File

@@ -20,15 +20,15 @@ import (
"github.com/gofiber/fiber/v2"
"github.com/versity/versitygw/backend"
"github.com/versity/versitygw/s3api/utils"
"github.com/versity/versitygw/s3api/middlewares"
)
func TestNew(t *testing.T) {
type args struct {
app *fiber.App
be backend.Backend
port string
rootUser utils.RootUser
app *fiber.App
be backend.Backend
port string
adminUser middlewares.AdminUser
}
app := fiber.New()
@@ -45,10 +45,10 @@ func TestNew(t *testing.T) {
{
name: "Create S3 api server",
args: args{
app: app,
be: be,
port: port,
rootUser: utils.RootUser{},
app: app,
be: be,
port: port,
adminUser: middlewares.AdminUser{},
},
wantS3ApiServer: &S3ApiServer{
app: app,
@@ -61,7 +61,7 @@ func TestNew(t *testing.T) {
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
gotS3ApiServer, err := New(tt.args.app, tt.args.be, tt.args.port, tt.args.rootUser)
gotS3ApiServer, err := New(tt.args.app, tt.args.be, tt.args.port, tt.args.adminUser)
if (err != nil) != tt.wantErr {
t.Errorf("New() error = %v, wantErr %v", err, tt.wantErr)
return

View File

@@ -17,9 +17,7 @@ package utils
import (
"bytes"
"errors"
"flag"
"net/http"
"os"
"strings"
"github.com/gofiber/fiber/v2"
@@ -39,28 +37,6 @@ func GetUserMetaData(headers *fasthttp.RequestHeader) (metadata map[string]strin
return
}
type RootUser struct {
Login string
Password string
}
func GetRootUserCreds() (rootUser RootUser) {
loginPtr := flag.String("login", "", "Root user login")
passwordPtr := flag.String("password", "", "Root user password")
flag.Parse()
if *loginPtr == "" || *passwordPtr == "" {
os.Exit(3)
}
rootUser = RootUser{
Login: *loginPtr,
Password: *passwordPtr,
}
return
}
func CreateHttpRequestFromCtx(ctx *fiber.Ctx) (*http.Request, error) {
req := ctx.Request()