diff --git a/api/go.mod b/api/go.mod index ca426eba60793..fd56e9ee9467f 100644 --- a/api/go.mod +++ b/api/go.mod @@ -6,7 +6,7 @@ require ( github.com/go-piv/piv-go v1.10.0 github.com/gogo/protobuf v1.3.2 github.com/google/go-cmp v0.5.9 - github.com/gravitational/trace v1.1.19 + github.com/gravitational/trace v1.2.0 github.com/jonboulle/clockwork v0.3.0 github.com/russellhaering/gosaml2 v0.8.1 github.com/sirupsen/logrus v1.9.0 diff --git a/api/go.sum b/api/go.sum index cef0f816805a8..0b0cde9d3fcee 100644 --- a/api/go.sum +++ b/api/go.sum @@ -139,8 +139,8 @@ github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm4 github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/gravitational/trace v1.1.19 h1:MHxfSvqHRNyOGF2440JILYrLdseAhCMErenSkg+i8+s= -github.com/gravitational/trace v1.1.19/go.mod h1:n0ijrq6psJY0sOI/NzLp+xdd8xl79jjwzVOFHDY6+kQ= +github.com/gravitational/trace v1.2.0 h1:ODrkITHAmumFOTgCLb2zScMRCT2VQVXyIzDpN2CyN6s= +github.com/gravitational/trace v1.2.0/go.mod h1:n0ijrq6psJY0sOI/NzLp+xdd8xl79jjwzVOFHDY6+kQ= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 h1:BZHcxBETFHIdVyhyEfOvn/RdU/QGdLI4y34qQGjGWO0= github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= diff --git a/go.mod b/go.mod index a0715915bfb0b..f997848f8b9e4 100644 --- a/go.mod +++ b/go.mod @@ -72,7 +72,7 @@ require ( github.com/gravitational/reporting v0.0.0-20210923183620-237377721140 github.com/gravitational/roundtrip v1.0.2 github.com/gravitational/teleport/api v0.0.0 - github.com/gravitational/trace v1.1.19 + github.com/gravitational/trace v1.2.0 github.com/gravitational/ttlmap v0.0.0-20171116003245-91fd36b9004c github.com/grpc-ecosystem/go-grpc-middleware/providers/openmetrics/v2 v2.0.0-rc.3 github.com/hashicorp/golang-lru v0.6.0 diff --git a/go.sum b/go.sum index 96e3b906eaa1f..d9bbb0bd42506 100644 --- a/go.sum +++ b/go.sum @@ -617,8 +617,8 @@ github.com/gravitational/roundtrip v1.0.2 h1:eOCY0NEKKaB0ksJmvhO6lPMFz1pIIef+vyP github.com/gravitational/roundtrip v1.0.2/go.mod h1:fuI1booM2hLRA/B/m5MRAPOU6mBZNYcNycono2UuTw0= github.com/gravitational/sftp v1.13.6-0.20220927202521-0e74d42f8055 h1:iUQqKNaW1lywWSVZkeCQX0vygPfJ63UGx6Ng94e2t1o= github.com/gravitational/sftp v1.13.6-0.20220927202521-0e74d42f8055/go.mod h1:wHDZ0IZX6JcBYRK1TH9bcVq8G7TLpVHYIGJRFnmPfxg= -github.com/gravitational/trace v1.1.19 h1:MHxfSvqHRNyOGF2440JILYrLdseAhCMErenSkg+i8+s= -github.com/gravitational/trace v1.1.19/go.mod h1:n0ijrq6psJY0sOI/NzLp+xdd8xl79jjwzVOFHDY6+kQ= +github.com/gravitational/trace v1.2.0 h1:ODrkITHAmumFOTgCLb2zScMRCT2VQVXyIzDpN2CyN6s= +github.com/gravitational/trace v1.2.0/go.mod h1:n0ijrq6psJY0sOI/NzLp+xdd8xl79jjwzVOFHDY6+kQ= github.com/gravitational/ttlmap v0.0.0-20171116003245-91fd36b9004c h1:C2iWDiod8vQ3YnOiCdMP9qYeg2UifQ8KSk36r0NswSE= github.com/gravitational/ttlmap v0.0.0-20171116003245-91fd36b9004c/go.mod h1:erKVikttPjeHKDCQZcqowEqiccy23cJAqPadZgfjNm8= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM= diff --git a/lib/auth/auth.go b/lib/auth/auth.go index d5b989070d0cc..43025b5de8ca0 100644 --- a/lib/auth/auth.go +++ b/lib/auth/auth.go @@ -1856,16 +1856,14 @@ func (a *Server) WithUserLock(username string, authenticateFn func() error) erro user.GetName(), defaults.MaxAccountRecoveryAttempts, apiutils.HumanTimeFormat(status.RecoveryAttemptLockExpires)) err := trace.AccessDenied(MaxFailedAttemptsErrMsg) - err.AddField(ErrFieldKeyUserMaxedAttempts, true) - return err + return trace.WithField(err, ErrFieldKeyUserMaxedAttempts, true) } if status.LockExpires.After(a.clock.Now().UTC()) { log.Debugf("%v exceeds %v failed login attempts, locked until %v", user.GetName(), defaults.MaxLoginAttempts, apiutils.HumanTimeFormat(status.LockExpires)) err := trace.AccessDenied(MaxFailedAttemptsErrMsg) - err.AddField(ErrFieldKeyUserMaxedAttempts, true) - return err + return trace.WithField(err, ErrFieldKeyUserMaxedAttempts, true) } } fnErr := authenticateFn() @@ -1909,8 +1907,7 @@ func (a *Server) WithUserLock(username string, authenticateFn func() error) erro } retErr := trace.AccessDenied(MaxFailedAttemptsErrMsg) - retErr.AddField(ErrFieldKeyUserMaxedAttempts, true) - return retErr + return trace.WithField(retErr, ErrFieldKeyUserMaxedAttempts, true) } // PreAuthenticatedSignIn is for MFA authentication methods where the password diff --git a/lib/auth/github.go b/lib/auth/github.go index ac36ba43dc34e..4a4bc4ab94977 100644 --- a/lib/auth/github.go +++ b/lib/auth/github.go @@ -504,19 +504,20 @@ func (a *Server) validateGithubAuthCallback(ctx context.Context, diagCtx *SSODia // optional parameter: error_description errDesc := q.Get("error_description") - return nil, trace.OAuth2(oauth2.ErrorInvalidRequest, errParam, q).AddUserMessage("Github returned error: %v [%v]", errDesc, errParam) + oauthErr := trace.OAuth2(oauth2.ErrorInvalidRequest, errParam, q) + return nil, trace.WithUserMessage(oauthErr, "Github returned error: %v [%v]", errDesc, errParam) } code := q.Get("code") if code == "" { - return nil, trace.OAuth2(oauth2.ErrorInvalidRequest, - "code query param must be set", q).AddUserMessage("Invalid parameters received from Github.") + oauthErr := trace.OAuth2(oauth2.ErrorInvalidRequest, "code query param must be set", q) + return nil, trace.WithUserMessage(oauthErr, "Invalid parameters received from Github.") } stateToken := q.Get("state") if stateToken == "" { - return nil, trace.OAuth2(oauth2.ErrorInvalidRequest, - "missing state query param", q).AddUserMessage("Invalid parameters received from Github.") + oauthErr := trace.OAuth2(oauth2.ErrorInvalidRequest, "missing state query param", q) + return nil, trace.WithUserMessage(oauthErr, "Invalid parameters received from Github.") } diagCtx.RequestID = stateToken diff --git a/lib/services/lock.go b/lib/services/lock.go index aac395449c2e4..a3aa4bce1b2d7 100644 --- a/lib/services/lock.go +++ b/lib/services/lock.go @@ -35,8 +35,7 @@ func LockInForceAccessDenied(lock types.Lock) error { s += ": " + msg } err := trace.AccessDenied(s) - err.AddField("lock-in-force", lock) - return err + return trace.WithField(err, "lock-in-force", lock) } // StrictLockingModeAccessDenied is an AccessDenied error returned when strict