From 48917ba5f7ed94a9f4d6980f44b9ebd9e1181fea Mon Sep 17 00:00:00 2001 From: zachmann <gabriel.zachmann@kit.edu> Date: Wed, 24 Feb 2021 12:31:21 +0100 Subject: [PATCH] refactor empty string comparison --- cmd/mytoken-server/mytoken-setup/setup.go | 2 +- internal/config/config.go | 2 +- .../db/dbrepo/authcodeinforepo/state/consentcode.go | 10 ++++------ .../supertokenrepo/transfercoderepo/proxytoken.go | 4 ++-- internal/endpoints/redirect/redirectEndpoint.go | 4 ++-- internal/endpoints/revocation/revocationEndpoint.go | 2 +- internal/endpoints/token/access/accessTokenEndpoint.go | 6 +++--- internal/model/response.go | 6 ++---- internal/oidc/oidcReqRes/request.go | 2 +- internal/oidc/refresh/refresh.go | 2 +- internal/oidc/revoke/revoke.go | 2 +- internal/server/errorHandler.go | 2 +- internal/server/server.go | 2 +- internal/utils/ctxUtils/token.go | 6 +++--- pkg/mytokenlib/accesstoken.go | 2 +- pkg/mytokenlib/error.go | 2 +- pkg/mytokenlib/mytoken.go | 2 +- pkg/mytokenlib/revoke.go | 2 +- pkg/mytokenlib/supertoken.go | 4 ++-- shared/httpClient/httpClient.go | 2 +- shared/supertoken/pkg/stid/stid.go | 4 ++-- shared/utils/utils.go | 2 +- 22 files changed, 34 insertions(+), 38 deletions(-) diff --git a/cmd/mytoken-server/mytoken-setup/setup.go b/cmd/mytoken-server/mytoken-setup/setup.go index 17eeaadb..18c244c8 100644 --- a/cmd/mytoken-server/mytoken-setup/setup.go +++ b/cmd/mytoken-server/mytoken-setup/setup.go @@ -161,7 +161,7 @@ func createTables(tx *sqlx.Tx) error { } for _, cmd := range dbdefinition.DDL { cmd = strings.TrimSpace(cmd) - if len(cmd) > 0 && !strings.HasPrefix(cmd, "--") { + if cmd != "" && !strings.HasPrefix(cmd, "--") { log.Trace(cmd) if _, err := tx.Exec(cmd); err != nil { return err diff --git a/internal/config/config.go b/internal/config/config.go index a9538b4d..dcc9683a 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -181,7 +181,7 @@ func validate() error { return fmt.Errorf("invalid config: server.hostname not set") } if conf.Server.TLS.Enabled { - if len(conf.Server.TLS.Key) > 0 && len(conf.Server.TLS.Cert) > 0 { + if conf.Server.TLS.Key != "" && conf.Server.TLS.Cert != "" { conf.Server.Port = 443 } else { conf.Server.TLS.Enabled = false diff --git a/internal/db/dbrepo/authcodeinforepo/state/consentcode.go b/internal/db/dbrepo/authcodeinforepo/state/consentcode.go index 880cc334..79020d48 100644 --- a/internal/db/dbrepo/authcodeinforepo/state/consentcode.go +++ b/internal/db/dbrepo/authcodeinforepo/state/consentcode.go @@ -31,17 +31,15 @@ type ConsentCode struct { } func (c *ConsentCode) String() string { - if len(c.public) > 0 { - return c.public + if c.public == "" { + c.public = c.r + c.encodedInfo } - c.public = c.r + c.encodedInfo return c.public } func (c *ConsentCode) GetState() string { - if len(c.state) > 0 { - return c.state + if c.state == "" { + c.state = hashUtils.HMACSHA512Str([]byte(c.r), []byte("state"))[:stateLen] + c.encodedInfo } - c.state = hashUtils.HMACSHA512Str([]byte(c.r), []byte("state"))[:stateLen] + c.encodedInfo return c.state } diff --git a/internal/db/dbrepo/supertokenrepo/transfercoderepo/proxytoken.go b/internal/db/dbrepo/supertokenrepo/transfercoderepo/proxytoken.go index 3dc2a774..7005c68a 100644 --- a/internal/db/dbrepo/supertokenrepo/transfercoderepo/proxytoken.go +++ b/internal/db/dbrepo/supertokenrepo/transfercoderepo/proxytoken.go @@ -38,7 +38,7 @@ func createProxyToken(token string) *proxyToken { // parseProxyToken parses the proxy token string into a proxyToken func parseProxyToken(token string) *proxyToken { var id string - if len(token) > 0 { + if token != "" { id = hashUtils.SHA512Str([]byte(token)) } return &proxyToken{ @@ -74,7 +74,7 @@ func (pt *proxyToken) SetJWT(jwt string) (err error) { // JWT returns the decrypted jwt that is linked to this proxyToken func (pt *proxyToken) JWT(tx *sqlx.Tx) (jwt string, valid bool, err error) { jwt = pt.decryptedJWT - if len(jwt) > 0 { + if jwt != "" { valid = true return } diff --git a/internal/endpoints/redirect/redirectEndpoint.go b/internal/endpoints/redirect/redirectEndpoint.go index 2a1a54a8..940df5da 100644 --- a/internal/endpoints/redirect/redirectEndpoint.go +++ b/internal/endpoints/redirect/redirectEndpoint.go @@ -20,8 +20,8 @@ func HandleOIDCRedirect(ctx *fiber.Ctx) error { log.Debug("Handle redirect") oidcError := ctx.Query("error") state := state.NewState(ctx.Query("state")) - if len(oidcError) > 0 { - if len(state.State()) > 0 { + if oidcError != "" { + if state.State() != "" { if err := db.Transact(func(tx *sqlx.Tx) error { if err := transfercoderepo.DeleteTransferCodeByState(tx, state); err != nil { return err diff --git a/internal/endpoints/revocation/revocationEndpoint.go b/internal/endpoints/revocation/revocationEndpoint.go index 66bc25ae..6df76687 100644 --- a/internal/endpoints/revocation/revocationEndpoint.go +++ b/internal/endpoints/revocation/revocationEndpoint.go @@ -86,7 +86,7 @@ func revokeSuperToken(tx *sqlx.Tx, jwt, issuer string, recursive bool) (errRes * if err != nil { return nil } - if len(issuer) > 0 && st.OIDCIssuer != issuer { + if issuer != "" && st.OIDCIssuer != issuer { return &model.Response{ Status: fiber.StatusBadRequest, Response: pkgModel.BadRequestError("token not for specified issuer"), diff --git a/internal/endpoints/token/access/accessTokenEndpoint.go b/internal/endpoints/token/access/accessTokenEndpoint.go index b6d8a589..90419655 100644 --- a/internal/endpoints/token/access/accessTokenEndpoint.go +++ b/internal/endpoints/token/access/accessTokenEndpoint.go @@ -126,9 +126,9 @@ func handleAccessTokenRefresh(st *supertoken.SuperToken, req request.AccessToken } } usedRestriction = &possibleRestrictions[0] - if len(req.Scope) > 0 { + if req.Scope != "" { scopes = req.Scope - } else if len(usedRestriction.Scope) > 0 { + } else if usedRestriction.Scope != "" { scopes = usedRestriction.Scope } if req.Audience != "" { @@ -159,7 +159,7 @@ func handleAccessTokenRefresh(st *supertoken.SuperToken, req request.AccessToken } } retScopes := scopes - if len(oidcRes.Scopes) > 0 { + if oidcRes.Scopes != "" { retScopes = oidcRes.Scopes } retAudiences, _ := jwtutils.GetAudiencesFromJWT(oidcRes.AccessToken) diff --git a/internal/model/response.go b/internal/model/response.go index 1ac35464..2e1150ad 100644 --- a/internal/model/response.go +++ b/internal/model/response.go @@ -19,10 +19,8 @@ type Response struct { // Send sends this response using the passed fiber.Ctx func (r Response) Send(ctx *fiber.Ctx) error { - if r.Cookies != nil && len(r.Cookies) > 0 { - for _, c := range r.Cookies { - ctx.Cookie(c) - } + for _, c := range r.Cookies { + ctx.Cookie(c) } if fasthttp.StatusCodeIsRedirect(r.Status) { return ctx.Redirect(r.Response.(string), r.Status) diff --git a/internal/oidc/oidcReqRes/request.go b/internal/oidc/oidcReqRes/request.go index 4dbf3898..82423bc9 100644 --- a/internal/oidc/oidcReqRes/request.go +++ b/internal/oidc/oidcReqRes/request.go @@ -38,7 +38,7 @@ func (r *RefreshRequest) ToFormData() map[string]string { m := make(map[string]string) for i := 0; i < t.NumField(); i++ { f := t.Field(i) - if key := f.Tag.Get("json"); len(key) > 0 { + if key := f.Tag.Get("json"); key != "" { if key == "resource" { key = r.resourceParameter } diff --git a/internal/oidc/refresh/refresh.go b/internal/oidc/refresh/refresh.go index 599ad17b..b55e033d 100644 --- a/internal/oidc/refresh/refresh.go +++ b/internal/oidc/refresh/refresh.go @@ -28,7 +28,7 @@ func RefreshFlowAndUpdate(provider *config.ProviderConf, superToken, rt, scopes, if err != nil { return nil, nil, err } - if errRes, ok := httpRes.Error().(*oidcReqRes.OIDCErrorResponse); ok && errRes != nil && len(errRes.Error) > 0 { + if errRes, ok := httpRes.Error().(*oidcReqRes.OIDCErrorResponse); ok && errRes != nil && errRes.Error != "" { errRes.Status = httpRes.RawResponse.StatusCode return nil, errRes, nil } diff --git a/internal/oidc/revoke/revoke.go b/internal/oidc/revoke/revoke.go index 21566ad5..aa0905ba 100644 --- a/internal/oidc/revoke/revoke.go +++ b/internal/oidc/revoke/revoke.go @@ -18,7 +18,7 @@ func RefreshToken(provider *config.ProviderConf, rt string) *model.Response { if err != nil { return model.ErrorToInternalServerErrorResponse(err) } - if errRes, ok := httpRes.Error().(*oidcReqRes.OIDCErrorResponse); ok && errRes != nil && len(errRes.Error) > 0 { + if errRes, ok := httpRes.Error().(*oidcReqRes.OIDCErrorResponse); ok && errRes != nil && errRes.Error != "" { return &model.Response{ Status: httpRes.RawResponse.StatusCode, Response: pkgModel.OIDCError(errRes.Error, errRes.ErrorDescription), diff --git a/internal/server/errorHandler.go b/internal/server/errorHandler.go index 7a273a30..ce2d3e1e 100644 --- a/internal/server/errorHandler.go +++ b/internal/server/errorHandler.go @@ -20,7 +20,7 @@ func handleError(ctx *fiber.Ctx, err error) error { msg = e.Message } - if len(ctx.Accepts(fiber.MIMETextHTML, fiber.MIMETextHTMLCharsetUTF8)) > 0 { + if ctx.Accepts(fiber.MIMETextHTML, fiber.MIMETextHTMLCharsetUTF8) != "" { return handleErrorHTML(ctx, code, msg) } return handleErrorJSON(ctx, code, msg) diff --git a/internal/server/server.go b/internal/server/server.go index 818aa312..7cf5325c 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -45,7 +45,7 @@ func Init() { addMiddlewares(server) addRoutes(server) server.Use(func(ctx *fiber.Ctx) error { - if len(ctx.Accepts(fiber.MIMETextHTML, fiber.MIMETextHTMLCharsetUTF8)) > 0 { + if ctx.Accepts(fiber.MIMETextHTML, fiber.MIMETextHTMLCharsetUTF8) != "" { return ctx.Render("sites/404", map[string]interface{}{ "empty-navbar": true, }, "layouts/main") diff --git a/internal/utils/ctxUtils/token.go b/internal/utils/ctxUtils/token.go index 6f27cd40..b9c0afab 100644 --- a/internal/utils/ctxUtils/token.go +++ b/internal/utils/ctxUtils/token.go @@ -13,14 +13,14 @@ import ( func GetSuperTokenStr(ctx *fiber.Ctx) string { req := pkg.CreateTransferCodeRequest{} if err := json.Unmarshal(ctx.Body(), &req); err == nil { - if len(req.SuperToken) > 0 { + if req.SuperToken != "" { return req.SuperToken } } - if tok := GetAuthHeaderToken(ctx); len(tok) > 0 { + if tok := GetAuthHeaderToken(ctx); tok != "" { return tok } - if tok := ctx.Cookies("mytoken-supertoken"); len(tok) > 0 { + if tok := ctx.Cookies("mytoken-supertoken"); tok != "" { return tok } return "" diff --git a/pkg/mytokenlib/accesstoken.go b/pkg/mytokenlib/accesstoken.go index c57999a3..ea710355 100644 --- a/pkg/mytokenlib/accesstoken.go +++ b/pkg/mytokenlib/accesstoken.go @@ -23,7 +23,7 @@ func (my *Mytoken) GetAccessToken(superToken, oidcIssuer string, scopes, audienc return "", newMytokenErrorFromError("error while sending http request", err) } if e := resp.Error(); e != nil { - if errRes := e.(*model.APIError); errRes != nil && len(errRes.Error) > 0 { + if errRes := e.(*model.APIError); errRes != nil && errRes.Error != "" { return "", &MytokenError{ err: errRes.Error, errorDetails: errRes.ErrorDescription, diff --git a/pkg/mytokenlib/error.go b/pkg/mytokenlib/error.go index cc2e1643..225e252f 100644 --- a/pkg/mytokenlib/error.go +++ b/pkg/mytokenlib/error.go @@ -8,7 +8,7 @@ type MytokenError struct { func (err *MytokenError) Error() string { e := err.err - if len(err.errorDetails) > 0 { + if err.errorDetails != "" { e += ": " + err.errorDetails } return e diff --git a/pkg/mytokenlib/mytoken.go b/pkg/mytokenlib/mytoken.go index 461093d4..949e7ca6 100644 --- a/pkg/mytokenlib/mytoken.go +++ b/pkg/mytokenlib/mytoken.go @@ -18,7 +18,7 @@ func NewMytokenInstance(url string) (*Mytoken, error) { return nil, newMytokenErrorFromError("could not connect to mytoken instance", err) } if e := resp.Error(); e != nil { - if errRes := e.(*model.APIError); errRes != nil && len(errRes.Error) > 0 { + if errRes := e.(*model.APIError); errRes != nil && errRes.Error != "" { return nil, &MytokenError{ err: errRes.Error, errorDetails: errRes.ErrorDescription, diff --git a/pkg/mytokenlib/revoke.go b/pkg/mytokenlib/revoke.go index aec323cd..d78256d7 100644 --- a/pkg/mytokenlib/revoke.go +++ b/pkg/mytokenlib/revoke.go @@ -17,7 +17,7 @@ func (my *Mytoken) Revoke(superToken, oidcIssuer string, recursive bool) error { return newMytokenErrorFromError("error while sending http request", err) } if e := resp.Error(); e != nil { - if errRes := e.(*model.APIError); errRes != nil && len(errRes.Error) > 0 { + if errRes := e.(*model.APIError); errRes != nil && errRes.Error != "" { return &MytokenError{ err: errRes.Error, errorDetails: errRes.ErrorDescription, diff --git a/pkg/mytokenlib/supertoken.go b/pkg/mytokenlib/supertoken.go index f2b49b54..0b500467 100644 --- a/pkg/mytokenlib/supertoken.go +++ b/pkg/mytokenlib/supertoken.go @@ -19,7 +19,7 @@ func (my *Mytoken) GetSuperToken(req interface{}) (string, error) { return "", newMytokenErrorFromError("error while sending http request", err) } if e := resp.Error(); e != nil { - if errRes := e.(*model.APIError); errRes != nil && len(errRes.Error) > 0 { + if errRes := e.(*model.APIError); errRes != nil && errRes.Error != "" { return "", &MytokenError{ err: errRes.Error, errorDetails: errRes.ErrorDescription, @@ -91,7 +91,7 @@ func (my *Mytoken) InitAuthorizationFlow(issuer string, restrictions restriction return nil, newMytokenErrorFromError("error while sending http request", err) } if e := resp.Error(); e != nil { - if errRes := e.(*model.APIError); errRes != nil && len(errRes.Error) > 0 { + if errRes := e.(*model.APIError); errRes != nil && errRes.Error != "" { return nil, &MytokenError{ err: errRes.Error, errorDetails: errRes.ErrorDescription, diff --git a/shared/httpClient/httpClient.go b/shared/httpClient/httpClient.go index 621c15da..377f2c1f 100644 --- a/shared/httpClient/httpClient.go +++ b/shared/httpClient/httpClient.go @@ -24,7 +24,7 @@ func init() { // Init initializes the http client func Init(hostURL string) { - if len(hostURL) > 0 { + if hostURL != "" { client.SetHostURL(hostURL) } if log.IsLevelEnabled(log.DebugLevel) { diff --git a/shared/supertoken/pkg/stid/stid.go b/shared/supertoken/pkg/stid/stid.go index 2e094ea0..34757779 100644 --- a/shared/supertoken/pkg/stid/stid.go +++ b/shared/supertoken/pkg/stid/stid.go @@ -28,13 +28,13 @@ func (i *STID) Valid() bool { } func (i *STID) HashValid() bool { - if len(i.hash) > 0 { + if i.hash != "" { return true } if i.UUID.String() == "00000000-0000-0000-0000-000000000000" { return false } - return len(i.Hash()) > 0 + return i.Hash() != "" } func (i *STID) Hash() string { diff --git a/shared/utils/utils.go b/shared/utils/utils.go index 0855c2c0..fa616d06 100644 --- a/shared/utils/utils.go +++ b/shared/utils/utils.go @@ -266,7 +266,7 @@ func IsJWT(token string) bool { return false } for i, segment := range arr { - if len(segment) > 0 || i < 2 { // first two segments must not be empty + if segment != "" || i < 2 { // first two segments must not be empty if _, err := base64.URLEncoding.DecodeString(arr[2]); err != nil { return false } -- GitLab