mirror of
https://github.com/gravitational/teleport.git
synced 2026-10-11 22:49:54 +00:00
Fix violations of non-constant format strings linter (#51812)
Depends on https://github.com/gravitational/teleport.e/pull/6006. Now that we are compliant, the ignore rule was removed from the golangci-lint config to prevent future regressions.
This commit is contained in:
@@ -55,9 +55,6 @@ issues:
|
||||
- path: provider/provider.go # integrations/terraform
|
||||
linters: [staticcheck]
|
||||
text: 'grpc.WithReturnConnectionError is deprecated'
|
||||
- linters: [govet]
|
||||
path-except: ^e/
|
||||
text: 'non-constant format string in call to github.com/gravitational/trace.'
|
||||
# BlockUntilContext should indeed be favored, this exception exists because
|
||||
# at this time there are too many offenders.
|
||||
- linters: [staticcheck]
|
||||
|
||||
@@ -345,7 +345,7 @@ func (c *CircuitBreaker) beforeExecution() (uint64, error) {
|
||||
c.cfg.OnExecute(false, StateTripped)
|
||||
|
||||
if c.cfg.TrippedErrorMessage != "" {
|
||||
return generation, trace.ConnectionProblem(nil, c.cfg.TrippedErrorMessage)
|
||||
return generation, trace.ConnectionProblem(nil, "%s", c.cfg.TrippedErrorMessage)
|
||||
}
|
||||
|
||||
return generation, trace.Wrap(ErrStateTripped)
|
||||
|
||||
+11
-11
@@ -59,7 +59,7 @@ func (d *Duration) UnmarshalJSON(data []byte) error {
|
||||
}
|
||||
out, err := parseDuration(stringVar)
|
||||
if err != nil {
|
||||
return trace.BadParameter(err.Error())
|
||||
return trace.BadParameter("%s", err)
|
||||
}
|
||||
*d = out
|
||||
return nil
|
||||
@@ -83,7 +83,7 @@ func (d *Duration) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
||||
}
|
||||
out, err := parseDuration(stringVar)
|
||||
if err != nil {
|
||||
return trace.BadParameter(err.Error())
|
||||
return trace.BadParameter("%s", err)
|
||||
}
|
||||
*d = out
|
||||
return nil
|
||||
@@ -189,7 +189,7 @@ func parseDuration(s string) (Duration, error) {
|
||||
return 0, nil
|
||||
}
|
||||
if s == "" {
|
||||
return 0, trace.BadParameter("time: invalid duration " + orig)
|
||||
return 0, trace.BadParameter("time: invalid duration %q", orig)
|
||||
}
|
||||
for s != "" {
|
||||
var (
|
||||
@@ -201,13 +201,13 @@ func parseDuration(s string) (Duration, error) {
|
||||
|
||||
// The next character must be [0-9.]
|
||||
if !(s[0] == '.' || '0' <= s[0] && s[0] <= '9') {
|
||||
return 0, trace.BadParameter("time: invalid duration " + orig)
|
||||
return 0, trace.BadParameter("time: invalid duration %q", orig)
|
||||
}
|
||||
// Consume [0-9]*
|
||||
pl := len(s)
|
||||
v, s, err = leadingInt(s)
|
||||
if err != nil {
|
||||
return 0, trace.BadParameter("time: invalid duration " + orig)
|
||||
return 0, trace.BadParameter("time: invalid duration %q", orig)
|
||||
}
|
||||
pre := pl != len(s) // whether we consumed anything before a period
|
||||
|
||||
@@ -221,7 +221,7 @@ func parseDuration(s string) (Duration, error) {
|
||||
}
|
||||
if !pre && !post {
|
||||
// no digits (e.g. ".s" or "-.s")
|
||||
return 0, trace.BadParameter("time: invalid duration " + orig)
|
||||
return 0, trace.BadParameter("time: invalid duration %q", orig)
|
||||
}
|
||||
|
||||
// Consume unit.
|
||||
@@ -233,17 +233,17 @@ func parseDuration(s string) (Duration, error) {
|
||||
}
|
||||
}
|
||||
if i == 0 {
|
||||
return 0, trace.BadParameter("time: missing unit in duration " + orig)
|
||||
return 0, trace.BadParameter("time: missing unit in duration %q", orig)
|
||||
}
|
||||
u := s[:i]
|
||||
s = s[i:]
|
||||
unit, ok := unitMap[u]
|
||||
if !ok {
|
||||
return 0, trace.BadParameter("time: unknown unit " + " in duration " + orig)
|
||||
return 0, trace.BadParameter("time: unknown unit in duration %q", orig)
|
||||
}
|
||||
if v > (1<<63-1)/unit {
|
||||
// overflow
|
||||
return 0, trace.BadParameter("time: invalid duration " + orig)
|
||||
return 0, trace.BadParameter("time: invalid duration %q", orig)
|
||||
}
|
||||
v *= unit
|
||||
if f > 0 {
|
||||
@@ -252,13 +252,13 @@ func parseDuration(s string) (Duration, error) {
|
||||
v += int64(float64(f) * (float64(unit) / scale))
|
||||
if v < 0 {
|
||||
// overflow
|
||||
return 0, trace.BadParameter("time: invalid duration " + orig)
|
||||
return 0, trace.BadParameter("time: invalid duration %q", orig)
|
||||
}
|
||||
}
|
||||
d += v
|
||||
if d < 0 {
|
||||
// overflow
|
||||
return 0, trace.BadParameter("time: invalid duration " + orig)
|
||||
return 0, trace.BadParameter("time: invalid duration %q", orig)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ limitations under the License.
|
||||
package keys
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"regexp"
|
||||
|
||||
"github.com/gravitational/trace"
|
||||
@@ -164,7 +163,7 @@ var privateKeyPolicyErrRegex = regexp.MustCompile(`private key policy not (met|s
|
||||
|
||||
func NewPrivateKeyPolicyError(p PrivateKeyPolicy) error {
|
||||
// TODO(Joerger): Replace with "private key policy not satisfied" in 16.0.0
|
||||
return trace.BadParameter(fmt.Sprintf("private key policy not met: %s", p))
|
||||
return trace.BadParameter("private key policy not met: %s", p)
|
||||
}
|
||||
|
||||
// ParsePrivateKeyPolicyError checks if the given error is a private key policy
|
||||
|
||||
@@ -195,7 +195,7 @@ func (r *Linear) For(ctx context.Context, retryFn func() error) error {
|
||||
case <-r.After():
|
||||
r.Inc()
|
||||
case <-ctx.Done():
|
||||
return trace.LimitExceeded(ctx.Err().Error())
|
||||
return trace.LimitExceeded("%s", ctx.Err())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,6 @@ package sshutils
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
|
||||
"github.com/gravitational/trace"
|
||||
@@ -68,10 +67,11 @@ func ConnectProxyTransport(sconn ssh.Conn, req *DialReq, exclusive bool) (conn *
|
||||
// passed to us via stderr.
|
||||
errMessageBytes, _ := io.ReadAll(channel.Stderr())
|
||||
errMessage := string(bytes.TrimSpace(errMessageBytes))
|
||||
if len(errMessage) == 0 {
|
||||
errMessage = fmt.Sprintf("failed connecting to %v [%v]", req.Address, req.ServerID)
|
||||
if errMessage != "" {
|
||||
return nil, false, trace.Errorf("%s", errMessage)
|
||||
}
|
||||
return nil, false, trace.Errorf(errMessage)
|
||||
|
||||
return nil, false, trace.Errorf("failed connecting to %v [%v]", req.Address, req.ServerID)
|
||||
}
|
||||
|
||||
if exclusive {
|
||||
|
||||
@@ -36,7 +36,7 @@ func ParseCertificatePEM(bytes []byte) (*x509.Certificate, error) {
|
||||
}
|
||||
cert, err := x509.ParseCertificate(block.Bytes)
|
||||
if err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
return cert, nil
|
||||
}
|
||||
|
||||
@@ -106,5 +106,5 @@ func getLatest(ctx context.Context, versionSpec string, gh github.GitHub) (strin
|
||||
}
|
||||
}
|
||||
|
||||
return "", trace.NotFound("no releases matched " + versionSpec)
|
||||
return "", trace.NotFound("no releases matched %q", versionSpec)
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ func readInput(input io.Reader, ch chan<- TestEvent, errCh chan<- error) {
|
||||
for scanner.Scan() {
|
||||
line := scanner.Text()
|
||||
if line != "" {
|
||||
err = trace.Errorf(line)
|
||||
err = trace.Errorf("%s", line)
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
Submodule e updated: 311dd13b77...b86b34efde
@@ -131,14 +131,12 @@ func onAfterDatadogResponse(sink common.StatusSink) resty.ResponseMiddleware {
|
||||
}
|
||||
|
||||
if resp.IsError() {
|
||||
var details string
|
||||
switch result := resp.Error().(type) {
|
||||
case *ErrorResult:
|
||||
details = fmt.Sprintf("http error code=%v, errors=[%v]", resp.StatusCode(), strings.Join(result.Errors, ", "))
|
||||
return trace.Errorf("http error code=%v, errors=[%v]", resp.StatusCode(), strings.Join(result.Errors, ", "))
|
||||
default:
|
||||
details = fmt.Sprintf("unknown error result %#v", result)
|
||||
return trace.Errorf("unknown error result %#v", result)
|
||||
}
|
||||
return trace.Errorf(details)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -125,23 +125,24 @@ func onAfterPagerDutyResponse(sink common.StatusSink) resty.ResponseMiddleware {
|
||||
log.ErrorContext(ctx, "Error while emitting PagerDuty plugin status", "error", err)
|
||||
}
|
||||
|
||||
var errorFn func(string, ...any) error = trace.Errorf
|
||||
if status.GetCode() == types.PluginStatusCode_UNAUTHORIZED {
|
||||
errorFn = func(msg string, args ...any) error {
|
||||
return trace.AccessDenied(msg, args...)
|
||||
}
|
||||
}
|
||||
|
||||
if resp.IsError() {
|
||||
var details string
|
||||
switch result := resp.Error().(type) {
|
||||
case *ErrorResult:
|
||||
// Do we have a formatted PagerDuty API error response? We set
|
||||
// an empty `ErrorResult` in the pre-request hook, and if the
|
||||
// HTTP server returns an error, the `resty` middleware will
|
||||
// attempt to unmarshal the error response into it.
|
||||
details = fmt.Sprintf("http error code=%v, err_code=%v, message=%v, errors=[%v]", resp.StatusCode(), result.Code, result.Message, strings.Join(result.Errors, ", "))
|
||||
return errorFn("http error code=%v, err_code=%v, message=%v, errors=[%v]", resp.StatusCode(), result.Code, result.Message, strings.Join(result.Errors, ", "))
|
||||
default:
|
||||
details = fmt.Sprintf("unknown error result %#v", result)
|
||||
return errorFn("unknown error result %#v", result)
|
||||
}
|
||||
|
||||
if status.GetCode() == types.PluginStatusCode_UNAUTHORIZED {
|
||||
return trace.AccessDenied(details)
|
||||
}
|
||||
return trace.Errorf(details)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
+25
-25
@@ -72,7 +72,7 @@ func (a *Server) StartAccountRecovery(ctx context.Context, req *proto.StartAccou
|
||||
"user", req.GetUsername(),
|
||||
"error", err,
|
||||
)
|
||||
return nil, trace.AccessDenied(startRecoveryGenericErrMsg)
|
||||
return nil, trace.AccessDenied("%s", startRecoveryGenericErrMsg)
|
||||
}
|
||||
|
||||
if err := a.verifyRecoveryCode(ctx, req.GetUsername(), req.GetRecoveryCode()); err != nil {
|
||||
@@ -86,7 +86,7 @@ func (a *Server) StartAccountRecovery(ctx context.Context, req *proto.StartAccou
|
||||
"user", req.GetUsername(),
|
||||
"error", err,
|
||||
)
|
||||
return nil, trace.AccessDenied(startRecoveryGenericErrMsg)
|
||||
return nil, trace.AccessDenied("%s", startRecoveryGenericErrMsg)
|
||||
}
|
||||
|
||||
token, err := a.createRecoveryToken(ctx, req.GetUsername(), authclient.UserTokenTypeRecoveryStart, req.GetRecoverType())
|
||||
@@ -96,7 +96,7 @@ func (a *Server) StartAccountRecovery(ctx context.Context, req *proto.StartAccou
|
||||
"user", req.GetUsername(),
|
||||
"error", err,
|
||||
)
|
||||
return nil, trace.AccessDenied(startRecoveryGenericErrMsg)
|
||||
return nil, trace.AccessDenied("%s", startRecoveryGenericErrMsg)
|
||||
}
|
||||
|
||||
return token, nil
|
||||
@@ -110,7 +110,7 @@ func (a *Server) verifyRecoveryCode(ctx context.Context, username string, recove
|
||||
// It will result in an error but this avoids timing attacks which expose account presence.
|
||||
case err != nil:
|
||||
a.logger.ErrorContext(ctx, "Failed to fetch user to verify account recovery", "error", err)
|
||||
return trace.AccessDenied(startRecoveryGenericErrMsg)
|
||||
return trace.AccessDenied("%s", startRecoveryGenericErrMsg)
|
||||
case user.GetUserType() != types.UserTypeLocal:
|
||||
return trace.AccessDenied("only local users may perform account recovery")
|
||||
}
|
||||
@@ -184,13 +184,13 @@ func (a *Server) verifyRecoveryCode(ctx context.Context, username string, recove
|
||||
recovery.GetCodes()[i].IsUsed = true
|
||||
if err := a.UpsertRecoveryCodes(ctx, username, recovery); err != nil {
|
||||
a.logger.ErrorContext(ctx, "Failed to update recovery code as used", "error", err)
|
||||
return trace.AccessDenied(startRecoveryGenericErrMsg)
|
||||
return trace.AccessDenied("%s", startRecoveryGenericErrMsg)
|
||||
}
|
||||
break
|
||||
}
|
||||
|
||||
if !codeMatch || !hasRecoveryCodes {
|
||||
return trace.AccessDenied(startRecoveryBadAuthnErrMsg)
|
||||
return trace.AccessDenied("%s", startRecoveryBadAuthnErrMsg)
|
||||
}
|
||||
|
||||
return nil
|
||||
@@ -205,9 +205,9 @@ func (a *Server) VerifyAccountRecovery(ctx context.Context, req *proto.VerifyAcc
|
||||
startToken, err := a.GetUserToken(ctx, req.GetRecoveryStartTokenID())
|
||||
switch {
|
||||
case err != nil:
|
||||
return nil, trace.AccessDenied(verifyRecoveryGenericErrMsg)
|
||||
return nil, trace.AccessDenied("%s", verifyRecoveryGenericErrMsg)
|
||||
case startToken.GetUser() != req.Username:
|
||||
return nil, trace.AccessDenied(verifyRecoveryBadAuthnErrMsg)
|
||||
return nil, trace.AccessDenied("%s", verifyRecoveryBadAuthnErrMsg)
|
||||
}
|
||||
|
||||
if err := a.verifyUserToken(ctx, startToken, authclient.UserTokenTypeRecoveryStart); err != nil {
|
||||
@@ -222,7 +222,7 @@ func (a *Server) VerifyAccountRecovery(ctx context.Context, req *proto.VerifyAcc
|
||||
ctx,
|
||||
"Failed to verify account recovery, expected mfa authn response, but received password",
|
||||
)
|
||||
return nil, trace.AccessDenied(verifyRecoveryBadAuthnErrMsg)
|
||||
return nil, trace.AccessDenied("%s", verifyRecoveryBadAuthnErrMsg)
|
||||
}
|
||||
|
||||
if err := a.verifyAuthnRecovery(ctx, startToken, func() error {
|
||||
@@ -237,7 +237,7 @@ func (a *Server) VerifyAccountRecovery(ctx context.Context, req *proto.VerifyAcc
|
||||
ctx,
|
||||
"Failed to verify account recovery, expected password, but received a mfa authn response",
|
||||
)
|
||||
return nil, trace.AccessDenied(verifyRecoveryBadAuthnErrMsg)
|
||||
return nil, trace.AccessDenied("%s", verifyRecoveryBadAuthnErrMsg)
|
||||
}
|
||||
|
||||
if err := a.verifyAuthnRecovery(ctx, startToken, func() error {
|
||||
@@ -254,7 +254,7 @@ func (a *Server) VerifyAccountRecovery(ctx context.Context, req *proto.VerifyAcc
|
||||
|
||||
approvedToken, err := a.createRecoveryToken(ctx, startToken.GetUser(), authclient.UserTokenTypeRecoveryApproved, startToken.GetUsage())
|
||||
if err != nil {
|
||||
return nil, trace.AccessDenied(verifyRecoveryGenericErrMsg)
|
||||
return nil, trace.AccessDenied("%s", verifyRecoveryGenericErrMsg)
|
||||
}
|
||||
|
||||
// Delete start token to invalidate the recovery link sent to users.
|
||||
@@ -272,7 +272,7 @@ func (a *Server) verifyAuthnRecovery(ctx context.Context, startToken types.UserT
|
||||
_, err := a.Services.GetUser(ctx, startToken.GetUser(), false)
|
||||
if err != nil {
|
||||
a.logger.ErrorContext(ctx, "Failed to fetch user to verify account recovery", "error", err)
|
||||
return trace.AccessDenied(verifyRecoveryGenericErrMsg)
|
||||
return trace.AccessDenied("%s", verifyRecoveryGenericErrMsg)
|
||||
}
|
||||
|
||||
// The error returned from authenticateFn does not guarantee sensitive info is not leaked.
|
||||
@@ -284,12 +284,12 @@ func (a *Server) verifyAuthnRecovery(ctx context.Context, startToken types.UserT
|
||||
ctx, "Encountered connection problem when verifying account recovery",
|
||||
"error", verifyAuthnErr,
|
||||
)
|
||||
return trace.AccessDenied(verifyRecoveryBadAuthnErrMsg)
|
||||
return trace.AccessDenied("%s", verifyRecoveryBadAuthnErrMsg)
|
||||
case verifyAuthnErr == nil:
|
||||
return nil
|
||||
}
|
||||
|
||||
return trace.AccessDenied(verifyRecoveryBadAuthnErrMsg)
|
||||
return trace.AccessDenied("%s", verifyRecoveryBadAuthnErrMsg)
|
||||
}
|
||||
|
||||
// CompleteAccountRecovery implements AuthService.CompleteAccountRecovery.
|
||||
@@ -301,7 +301,7 @@ func (a *Server) CompleteAccountRecovery(ctx context.Context, req *proto.Complet
|
||||
approvedToken, err := a.GetUserToken(ctx, req.GetRecoveryApprovedTokenID())
|
||||
if err != nil {
|
||||
a.logger.ErrorContext(ctx, "Encountered error when fetching recovery token", "error", err)
|
||||
return trace.AccessDenied(completeRecoveryGenericErrMsg)
|
||||
return trace.AccessDenied("%s", completeRecoveryGenericErrMsg)
|
||||
}
|
||||
|
||||
if err := a.verifyUserToken(ctx, approvedToken, authclient.UserTokenTypeRecoveryApproved); err != nil {
|
||||
@@ -316,7 +316,7 @@ func (a *Server) CompleteAccountRecovery(ctx context.Context, req *proto.Complet
|
||||
ctx, "Failed to recover account, did not receive password as expected",
|
||||
"received_type", logutil.TypeAttr(req.GetNewAuthnCred()),
|
||||
)
|
||||
return trace.AccessDenied(completeRecoveryGenericErrMsg)
|
||||
return trace.AccessDenied("%s", completeRecoveryGenericErrMsg)
|
||||
}
|
||||
|
||||
if err := services.VerifyPassword(req.GetNewPassword()); err != nil {
|
||||
@@ -325,7 +325,7 @@ func (a *Server) CompleteAccountRecovery(ctx context.Context, req *proto.Complet
|
||||
|
||||
if err := a.UpsertPassword(approvedToken.GetUser(), req.GetNewPassword()); err != nil {
|
||||
a.logger.ErrorContext(ctx, "Failed to upsert new password for user", "error", err)
|
||||
return trace.AccessDenied(completeRecoveryGenericErrMsg)
|
||||
return trace.AccessDenied("%s", completeRecoveryGenericErrMsg)
|
||||
}
|
||||
|
||||
case *proto.CompleteAccountRecoveryRequest_NewMFAResponse:
|
||||
@@ -334,7 +334,7 @@ func (a *Server) CompleteAccountRecovery(ctx context.Context, req *proto.Complet
|
||||
ctx, "Failed to recover account, did not receive MFA register response as expected",
|
||||
"received_type", logutil.TypeAttr(req.GetNewAuthnCred()),
|
||||
)
|
||||
return trace.AccessDenied(completeRecoveryGenericErrMsg)
|
||||
return trace.AccessDenied("%s", completeRecoveryGenericErrMsg)
|
||||
}
|
||||
|
||||
_, err = a.verifyMFARespAndAddDevice(ctx, &newMFADeviceFields{
|
||||
@@ -355,7 +355,7 @@ func (a *Server) CompleteAccountRecovery(ctx context.Context, req *proto.Complet
|
||||
user, err := a.Services.GetUser(ctx, approvedToken.GetUser(), false /* without secrets */)
|
||||
if err != nil {
|
||||
a.logger.ErrorContext(ctx, "Failed to fetch user to complete account recovery", "error", err)
|
||||
return trace.AccessDenied(completeRecoveryGenericErrMsg)
|
||||
return trace.AccessDenied("%s", completeRecoveryGenericErrMsg)
|
||||
}
|
||||
|
||||
if user.GetStatus().IsLocked {
|
||||
@@ -363,12 +363,12 @@ func (a *Server) CompleteAccountRecovery(ctx context.Context, req *proto.Complet
|
||||
_, err = a.UpsertUser(ctx, user)
|
||||
if err != nil {
|
||||
a.logger.ErrorContext(ctx, "Failed to upsert user completing account recovery", "error", err)
|
||||
return trace.AccessDenied(completeRecoveryGenericErrMsg)
|
||||
return trace.AccessDenied("%s", completeRecoveryGenericErrMsg)
|
||||
}
|
||||
|
||||
if err := a.DeleteUserLoginAttempts(approvedToken.GetUser()); err != nil {
|
||||
a.logger.ErrorContext(ctx, "Failed to delete user login attempts after completing account recovery", "error", err)
|
||||
return trace.AccessDenied(completeRecoveryGenericErrMsg)
|
||||
return trace.AccessDenied("%s", completeRecoveryGenericErrMsg)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -386,19 +386,19 @@ func (a *Server) CreateAccountRecoveryCodes(ctx context.Context, req *proto.Crea
|
||||
token, err := a.GetUserToken(ctx, req.GetTokenID())
|
||||
if err != nil {
|
||||
a.logger.ErrorContext(ctx, "Failed to fetch existing user recovery token", "error", err)
|
||||
return nil, trace.AccessDenied(unableToCreateCodesMsg)
|
||||
return nil, trace.AccessDenied("%s", unableToCreateCodesMsg)
|
||||
}
|
||||
|
||||
if _, err := mail.ParseAddress(token.GetUser()); err != nil {
|
||||
a.logger.DebugContext(ctx, "Failed to create new recovery codes, username is not a valid email", "user", token.GetUser(), "error", err)
|
||||
return nil, trace.AccessDenied(unableToCreateCodesMsg)
|
||||
return nil, trace.AccessDenied("%s", unableToCreateCodesMsg)
|
||||
}
|
||||
|
||||
// Verify if the user is local.
|
||||
switch user, err := a.GetUser(ctx, token.GetUser(), false /* withSecrets */); {
|
||||
case err != nil:
|
||||
// err swallowed on purpose.
|
||||
return nil, trace.AccessDenied(unableToCreateCodesMsg)
|
||||
return nil, trace.AccessDenied("%s", unableToCreateCodesMsg)
|
||||
case user.GetUserType() != types.UserTypeLocal:
|
||||
return nil, trace.AccessDenied("only local users may create recovery codes")
|
||||
}
|
||||
@@ -410,7 +410,7 @@ func (a *Server) CreateAccountRecoveryCodes(ctx context.Context, req *proto.Crea
|
||||
newRecovery, err := a.generateAndUpsertRecoveryCodes(ctx, token.GetUser())
|
||||
if err != nil {
|
||||
a.logger.ErrorContext(ctx, "Failed to generate and upsert new recovery codes", "error", err)
|
||||
return nil, trace.AccessDenied(unableToCreateCodesMsg)
|
||||
return nil, trace.AccessDenied("%s", unableToCreateCodesMsg)
|
||||
}
|
||||
|
||||
if err := a.deleteUserTokens(ctx, token.GetUser()); err != nil {
|
||||
|
||||
+5
-5
@@ -3647,7 +3647,7 @@ func (a *Server) WithUserLock(ctx context.Context, username string, authenticate
|
||||
"locked_until", apiutils.HumanTimeFormat(status.LockExpires),
|
||||
)
|
||||
|
||||
err := trace.AccessDenied(MaxFailedAttemptsErrMsg)
|
||||
err := trace.AccessDenied("%s", MaxFailedAttemptsErrMsg)
|
||||
return trace.WithField(err, ErrFieldKeyUserMaxedAttempts, true)
|
||||
}
|
||||
}
|
||||
@@ -3697,7 +3697,7 @@ func (a *Server) WithUserLock(ctx context.Context, username string, authenticate
|
||||
return trace.Wrap(fnErr)
|
||||
}
|
||||
|
||||
retErr := trace.AccessDenied(MaxFailedAttemptsErrMsg)
|
||||
retErr := trace.AccessDenied("%s", MaxFailedAttemptsErrMsg)
|
||||
return trace.WithField(retErr, ErrFieldKeyUserMaxedAttempts, true)
|
||||
}
|
||||
|
||||
@@ -4979,12 +4979,12 @@ func (a *Server) ValidateToken(ctx context.Context, token string) (types.Provisi
|
||||
tok, err := a.GetToken(ctx, token)
|
||||
if err != nil {
|
||||
if trace.IsNotFound(err) {
|
||||
return nil, trace.AccessDenied(TokenExpiredOrNotFound)
|
||||
return nil, trace.AccessDenied("%s", TokenExpiredOrNotFound)
|
||||
}
|
||||
return nil, trace.Wrap(err)
|
||||
}
|
||||
if !a.checkTokenTTL(tok) {
|
||||
return nil, trace.AccessDenied(TokenExpiredOrNotFound)
|
||||
return nil, trace.AccessDenied("%s", TokenExpiredOrNotFound)
|
||||
}
|
||||
|
||||
return tok, nil
|
||||
@@ -7714,7 +7714,7 @@ func (a *Server) verifyAccessRequestMonthlyLimit(ctx context.Context) error {
|
||||
return trace.Wrap(err)
|
||||
}
|
||||
if usage >= int(monthlyLimit) {
|
||||
return trace.AccessDenied(limitReachedMessage)
|
||||
return trace.AccessDenied("%s", limitReachedMessage)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
@@ -7748,22 +7748,22 @@ func checkOktaLockTarget(ctx context.Context, authzCtx *authz.Context, users ser
|
||||
target := lock.Target()
|
||||
switch {
|
||||
case !target.Equals(types.LockTarget{User: target.User}):
|
||||
return trace.BadParameter(errorMsg)
|
||||
return trace.BadParameter("%s", errorMsg)
|
||||
|
||||
case target.User == "":
|
||||
return trace.BadParameter(errorMsg)
|
||||
return trace.BadParameter("%s", errorMsg)
|
||||
}
|
||||
|
||||
targetUser, err := users.GetUser(ctx, target.User, false /* withSecrets */)
|
||||
if err != nil {
|
||||
if trace.IsNotFound(err) {
|
||||
return trace.AccessDenied(errorMsg)
|
||||
return trace.AccessDenied("%s", errorMsg)
|
||||
}
|
||||
return trace.Wrap(err)
|
||||
}
|
||||
|
||||
if targetUser.Origin() != types.OriginOkta {
|
||||
return trace.AccessDenied(errorMsg)
|
||||
return trace.AccessDenied("%s", errorMsg)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
+2
-2
@@ -1080,7 +1080,7 @@ func ValidateClientRedirect(clientRedirect string, ssoTestFlow bool, settings *t
|
||||
}
|
||||
|
||||
if settings == nil {
|
||||
return trace.AccessDenied(unknownRedirectHostnameErrMsg)
|
||||
return trace.AccessDenied("%s", unknownRedirectHostnameErrMsg)
|
||||
}
|
||||
|
||||
// allow HTTP or HTTPS redirects from IPs in specified CIDR ranges
|
||||
@@ -1119,7 +1119,7 @@ func ValidateClientRedirect(clientRedirect string, ssoTestFlow bool, settings *t
|
||||
}
|
||||
}
|
||||
|
||||
return trace.AccessDenied(unknownRedirectHostnameErrMsg)
|
||||
return trace.AccessDenied("%s", unknownRedirectHostnameErrMsg)
|
||||
}
|
||||
|
||||
// populateGithubClaims builds a GithubClaims using queried
|
||||
|
||||
+3
-3
@@ -619,7 +619,7 @@ func (a *Server) AuthenticateWebUser(ctx context.Context, req authclient.Authent
|
||||
// to the local auth will be disabled by default.
|
||||
if !authPref.GetAllowLocalAuth() && req.Session == nil {
|
||||
a.emitNoLocalAuthEvent(username)
|
||||
return nil, trace.AccessDenied(noLocalAuth)
|
||||
return nil, trace.AccessDenied("%s", noLocalAuth)
|
||||
}
|
||||
|
||||
if req.Session != nil {
|
||||
@@ -680,7 +680,7 @@ func (a *Server) AuthenticateSSHUser(ctx context.Context, req authclient.Authent
|
||||
// Disable all local auth requests, except headless requests.
|
||||
if !authPref.GetAllowLocalAuth() && req.HeadlessAuthenticationID == "" {
|
||||
a.emitNoLocalAuthEvent(username)
|
||||
return nil, trace.AccessDenied(noLocalAuth)
|
||||
return nil, trace.AccessDenied("%s", noLocalAuth)
|
||||
}
|
||||
|
||||
clusterName, err := a.GetClusterName()
|
||||
@@ -802,7 +802,7 @@ func getErrorByTraceField(err error) error {
|
||||
logger.WarnContext(context.Background(), "Unexpected error type, wanted TraceError", "error", err)
|
||||
return trace.AccessDenied("an error has occurred")
|
||||
case traceErr.GetFields()[ErrFieldKeyUserMaxedAttempts] != nil:
|
||||
return trace.AccessDenied(MaxFailedAttemptsErrMsg)
|
||||
return trace.AccessDenied("%s", MaxFailedAttemptsErrMsg)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
@@ -189,13 +189,13 @@ func (a *Server) checkPasswordWOToken(ctx context.Context, user string, password
|
||||
|
||||
if err = bcrypt.CompareHashAndPassword(hash, password); err != nil {
|
||||
a.logger.DebugContext(ctx, "Password for user does not match", "user", user)
|
||||
return trace.BadParameter(errMsg)
|
||||
return trace.BadParameter("%s", errMsg)
|
||||
}
|
||||
|
||||
// Careful! The bcrypt check above may succeed for an unknown user when the
|
||||
// provided password is "barbaz", which is what fakePasswordHash hashes to.
|
||||
if !userFound {
|
||||
return trace.BadParameter(errMsg)
|
||||
return trace.BadParameter("%s", errMsg)
|
||||
}
|
||||
|
||||
// At this point, we know that the user provided a correct password, so we may
|
||||
@@ -315,7 +315,7 @@ func (a *Server) changeUserAuthentication(ctx context.Context, req *proto.Change
|
||||
return nil, trace.Wrap(err)
|
||||
}
|
||||
if !authPref.GetAllowLocalAuth() {
|
||||
return nil, trace.AccessDenied(noLocalAuth)
|
||||
return nil, trace.AccessDenied("%s", noLocalAuth)
|
||||
}
|
||||
|
||||
reqPasswordless := len(req.GetNewPassword()) == 0 && authPref.GetAllowPasswordless()
|
||||
|
||||
+2
-2
@@ -86,14 +86,14 @@ func (a *Server) verifySSOMFASession(ctx context.Context, username, sessionID, t
|
||||
const notFoundErrMsg = "mfa sso session data not found"
|
||||
mfaSess, err := a.GetSSOMFASessionData(ctx, sessionID)
|
||||
if trace.IsNotFound(err) {
|
||||
return nil, trace.AccessDenied(notFoundErrMsg)
|
||||
return nil, trace.AccessDenied("%s", notFoundErrMsg)
|
||||
} else if err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
}
|
||||
|
||||
// Verify the user's name and sso device matches.
|
||||
if mfaSess.Username != username {
|
||||
return nil, trace.AccessDenied(notFoundErrMsg)
|
||||
return nil, trace.AccessDenied("%s", notFoundErrMsg)
|
||||
}
|
||||
|
||||
// Check if the MFA session matches the user's SSO MFA settings.
|
||||
|
||||
@@ -96,7 +96,7 @@ func (p *ProcessStorage) GetState(ctx context.Context, role types.SystemRole) (*
|
||||
}
|
||||
var res state.StateV2
|
||||
if err := utils.FastUnmarshal(item.Value, &res); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
|
||||
// an empty InitialLocalVersion is treated as an error by CheckAndSetDefaults, but if the field
|
||||
@@ -164,7 +164,7 @@ func (p *ProcessStorage) ReadIdentity(name string, role types.SystemRole) (*stat
|
||||
}
|
||||
var res state.IdentityV2
|
||||
if err := utils.FastUnmarshal(item.Value, &res); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := res.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -498,7 +498,7 @@ func (b *Backend) GetName() string {
|
||||
func (b *Backend) Create(ctx context.Context, item backend.Item) (*backend.Lease, error) {
|
||||
rev, err := b.create(ctx, item, modeCreate)
|
||||
if trace.IsCompareFailed(err) {
|
||||
err = trace.AlreadyExists(err.Error())
|
||||
err = trace.AlreadyExists("%s", err)
|
||||
}
|
||||
if err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
@@ -522,7 +522,7 @@ func (b *Backend) Put(ctx context.Context, item backend.Item) (*backend.Lease, e
|
||||
func (b *Backend) Update(ctx context.Context, item backend.Item) (*backend.Lease, error) {
|
||||
rev, err := b.create(ctx, item, modeUpdate)
|
||||
if trace.IsCompareFailed(err) {
|
||||
err = trace.NotFound(err.Error())
|
||||
err = trace.NotFound("%s", err)
|
||||
}
|
||||
if err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
@@ -709,7 +709,7 @@ func (b *Backend) CompareAndSwap(ctx context.Context, expected backend.Item, rep
|
||||
if err != nil {
|
||||
// in this case let's use more specific compare failed error
|
||||
if trace.IsAlreadyExists(err) {
|
||||
return nil, trace.CompareFailed(err.Error())
|
||||
return nil, trace.CompareFailed("%s", err)
|
||||
}
|
||||
return nil, trace.Wrap(err)
|
||||
}
|
||||
@@ -810,7 +810,7 @@ func (b *Backend) KeepAlive(ctx context.Context, lease backend.Lease, expires ti
|
||||
_, err := b.svc.UpdateItem(ctx, input)
|
||||
err = convertError(err)
|
||||
if trace.IsCompareFailed(err) {
|
||||
err = trace.NotFound(err.Error())
|
||||
err = trace.NotFound("%s", err)
|
||||
}
|
||||
return err
|
||||
}
|
||||
@@ -1173,46 +1173,46 @@ func convertError(err error) error {
|
||||
|
||||
var conditionalCheckFailedError *types.ConditionalCheckFailedException
|
||||
if errors.As(err, &conditionalCheckFailedError) {
|
||||
return trace.CompareFailed(conditionalCheckFailedError.ErrorMessage())
|
||||
return trace.CompareFailed("%s", conditionalCheckFailedError.ErrorMessage())
|
||||
}
|
||||
|
||||
var throughputExceededError *types.ProvisionedThroughputExceededException
|
||||
if errors.As(err, &throughputExceededError) {
|
||||
return trace.ConnectionProblem(throughputExceededError, throughputExceededError.ErrorMessage())
|
||||
return trace.ConnectionProblem(throughputExceededError, "%s", throughputExceededError.ErrorMessage())
|
||||
}
|
||||
|
||||
var notFoundError *types.ResourceNotFoundException
|
||||
if errors.As(err, ¬FoundError) {
|
||||
return trace.NotFound(notFoundError.ErrorMessage())
|
||||
return trace.NotFound("%s", notFoundError.ErrorMessage())
|
||||
}
|
||||
|
||||
var collectionLimitExceededError *types.ItemCollectionSizeLimitExceededException
|
||||
if errors.As(err, ¬FoundError) {
|
||||
return trace.BadParameter(collectionLimitExceededError.ErrorMessage())
|
||||
return trace.BadParameter("%s", collectionLimitExceededError.ErrorMessage())
|
||||
}
|
||||
|
||||
var internalError *types.InternalServerError
|
||||
if errors.As(err, &internalError) {
|
||||
return trace.BadParameter(internalError.ErrorMessage())
|
||||
return trace.BadParameter("%s", internalError.ErrorMessage())
|
||||
}
|
||||
|
||||
var expiredIteratorError *streamtypes.ExpiredIteratorException
|
||||
if errors.As(err, &expiredIteratorError) {
|
||||
return trace.ConnectionProblem(expiredIteratorError, expiredIteratorError.ErrorMessage())
|
||||
return trace.ConnectionProblem(expiredIteratorError, "%s", expiredIteratorError.ErrorMessage())
|
||||
}
|
||||
|
||||
var limitExceededError *streamtypes.LimitExceededException
|
||||
if errors.As(err, &limitExceededError) {
|
||||
return trace.ConnectionProblem(limitExceededError, limitExceededError.ErrorMessage())
|
||||
return trace.ConnectionProblem(limitExceededError, "%s", limitExceededError.ErrorMessage())
|
||||
}
|
||||
var trimmedAccessError *streamtypes.TrimmedDataAccessException
|
||||
if errors.As(err, &trimmedAccessError) {
|
||||
return trace.ConnectionProblem(trimmedAccessError, trimmedAccessError.ErrorMessage())
|
||||
return trace.ConnectionProblem(trimmedAccessError, "%s", trimmedAccessError.ErrorMessage())
|
||||
}
|
||||
|
||||
var scalingObjectNotFoundError *autoscalingtypes.ObjectNotFoundException
|
||||
if errors.As(err, &scalingObjectNotFoundError) {
|
||||
return trace.NotFound(scalingObjectNotFoundError.ErrorMessage())
|
||||
return trace.NotFound("%s", scalingObjectNotFoundError.ErrorMessage())
|
||||
}
|
||||
|
||||
return err
|
||||
|
||||
@@ -823,7 +823,7 @@ func (b *EtcdBackend) CompareAndSwap(ctx context.Context, expected backend.Item,
|
||||
if err != nil {
|
||||
err = convertErr(err)
|
||||
if trace.IsNotFound(err) {
|
||||
return nil, trace.CompareFailed(err.Error())
|
||||
return nil, trace.CompareFailed("%s", err)
|
||||
}
|
||||
return nil, trace.Wrap(err)
|
||||
}
|
||||
@@ -1073,14 +1073,14 @@ func convertErr(err error) error {
|
||||
case errors.Is(err, context.DeadlineExceeded):
|
||||
return trace.ConnectionProblem(err, "operation has timed out")
|
||||
case errors.Is(err, rpctypes.ErrEmptyKey):
|
||||
return trace.BadParameter(err.Error())
|
||||
return trace.BadParameter("%s", err)
|
||||
case errors.Is(err, rpctypes.ErrKeyNotFound):
|
||||
return trace.NotFound(err.Error())
|
||||
return trace.NotFound("%s", err)
|
||||
}
|
||||
|
||||
ev, ok := status.FromError(err)
|
||||
if !ok {
|
||||
return trace.ConnectionProblem(err, err.Error())
|
||||
return trace.ConnectionProblem(err, "%s", err.Error())
|
||||
}
|
||||
|
||||
switch ev.Code() {
|
||||
@@ -1089,15 +1089,15 @@ func convertErr(err error) error {
|
||||
case codes.DeadlineExceeded:
|
||||
return trace.ConnectionProblem(err, "operation has timed out")
|
||||
case codes.NotFound:
|
||||
return trace.NotFound(err.Error())
|
||||
return trace.NotFound("%s", err)
|
||||
case codes.AlreadyExists:
|
||||
return trace.AlreadyExists(err.Error())
|
||||
return trace.AlreadyExists("%s", err)
|
||||
case codes.FailedPrecondition:
|
||||
return trace.CompareFailed(err.Error())
|
||||
return trace.CompareFailed("%s", err)
|
||||
case codes.ResourceExhausted:
|
||||
return trace.LimitExceeded(err.Error())
|
||||
return trace.LimitExceeded("%s", err)
|
||||
default:
|
||||
return trace.BadParameter(err.Error())
|
||||
return trace.BadParameter("%s", err)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1097,7 +1097,7 @@ func (b *Backend) deleteDocuments(docs []*firestore.DocumentSnapshot) error {
|
||||
}
|
||||
|
||||
// ConvertGRPCError converts gRPC errors
|
||||
func ConvertGRPCError(err error, args ...interface{}) error {
|
||||
func ConvertGRPCError(err error) error {
|
||||
if err == nil {
|
||||
return nil
|
||||
}
|
||||
@@ -1107,15 +1107,15 @@ func ConvertGRPCError(err error, args ...interface{}) error {
|
||||
case codes.DeadlineExceeded:
|
||||
return context.DeadlineExceeded
|
||||
case codes.FailedPrecondition:
|
||||
return trace.BadParameter(err.Error(), args...)
|
||||
return trace.BadParameter("%s", err)
|
||||
case codes.NotFound:
|
||||
return trace.NotFound(err.Error(), args...)
|
||||
return trace.NotFound("%s", err)
|
||||
case codes.AlreadyExists:
|
||||
return trace.AlreadyExists(err.Error(), args...)
|
||||
return trace.AlreadyExists("%s", err)
|
||||
case codes.OK:
|
||||
return nil
|
||||
default:
|
||||
return trace.Wrap(err, args...)
|
||||
return trace.Wrap(err)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -967,7 +967,7 @@ func (l *Backend) inTransaction(ctx context.Context, f func(tx *sql.Tx) error) (
|
||||
}
|
||||
if err != nil && !trace.IsNotFound(err) {
|
||||
if isConstraintError(trace.Unwrap(err)) {
|
||||
err = trace.AlreadyExists(err.Error())
|
||||
err = trace.AlreadyExists("%s", err)
|
||||
}
|
||||
// transaction aborted by interrupt, no action needed
|
||||
if isInterrupt(trace.Unwrap(err)) {
|
||||
|
||||
+3
-4
@@ -2478,7 +2478,7 @@ func playSession(ctx context.Context, sessionID string, speed float64, streamer
|
||||
message := "Desktop sessions cannot be played with tsh play." +
|
||||
" Export the recording to video with tsh recordings export" +
|
||||
" or view the recording in your web browser."
|
||||
return trace.BadParameter(message)
|
||||
return trace.BadParameter("%s", message)
|
||||
case *apievents.AppSessionStart, *apievents.AppSessionChunk:
|
||||
return trace.BadParameter("Interactive session replay is not supported for app sessions." +
|
||||
" To play app sessions, specify --format=json or --format=yaml.")
|
||||
@@ -2498,9 +2498,8 @@ func playSession(ctx context.Context, sessionID string, speed float64, streamer
|
||||
lastTime = evt.Time
|
||||
case *apievents.DatabaseSessionStart:
|
||||
if !slices.Contains(libplayer.SupportedDatabaseProtocols, evt.DatabaseProtocol) {
|
||||
return trace.NotImplemented("Interactive database session replay is only supported for " +
|
||||
strings.Join(libplayer.SupportedDatabaseProtocols, ",") + " databases." +
|
||||
" To play other database sessions, specify --format=json or --format=yaml.")
|
||||
return trace.NotImplemented("Interactive database session replay is only supported for %s databases."+
|
||||
" To play other database sessions, specify --format=json or --format=yaml.", strings.Join(libplayer.SupportedDatabaseProtocols, ","))
|
||||
}
|
||||
default:
|
||||
continue
|
||||
|
||||
@@ -333,7 +333,7 @@ func NewNodeClient(ctx context.Context, sshConfig *ssh.ClientConfig, conn net.Co
|
||||
"target_host", nodeName,
|
||||
"error", err,
|
||||
)
|
||||
return nil, trace.AccessDenied(`access denied to %v connecting to %v`, sshConfig.User, nodeName)
|
||||
return nil, trace.AccessDenied("access denied to %v connecting to %v", sshConfig.User, nodeName)
|
||||
}
|
||||
return nil, trace.Wrap(err)
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ func CheckIfCertsAreAllowedToAccessCluster(k *client.KeyRing, rootCluster, telep
|
||||
}
|
||||
errMsg := "Your user's Teleport role does not allow Kubernetes access." +
|
||||
" Please ask cluster administrator to ensure your role has appropriate kubernetes_groups and kubernetes_users set."
|
||||
return trace.AccessDenied(errMsg)
|
||||
return trace.AccessDenied("%s", errMsg)
|
||||
}
|
||||
|
||||
// checkIfCertHasKubeGroupsAndUsers checks if the certificate has Kubernetes groups or users
|
||||
|
||||
@@ -47,20 +47,20 @@ var (
|
||||
func convertRequestFailureErrorFromStatusCode(statusCode int, requestErr error) error {
|
||||
switch statusCode {
|
||||
case http.StatusForbidden:
|
||||
return trace.AccessDenied(requestErr.Error())
|
||||
return trace.AccessDenied("%s", requestErr)
|
||||
case http.StatusConflict:
|
||||
return trace.AlreadyExists(requestErr.Error())
|
||||
return trace.AlreadyExists("%s", requestErr)
|
||||
case http.StatusNotFound:
|
||||
return trace.NotFound(requestErr.Error())
|
||||
return trace.NotFound("%s", requestErr)
|
||||
case http.StatusBadRequest:
|
||||
// Some services like memorydb, redshiftserverless may return 400 with
|
||||
// "AccessDeniedException" instead of 403.
|
||||
if strings.Contains(requestErr.Error(), "AccessDeniedException") {
|
||||
return trace.AccessDenied(requestErr.Error())
|
||||
return trace.AccessDenied("%s", requestErr)
|
||||
}
|
||||
|
||||
if strings.Contains(requestErr.Error(), ecsClusterNotFoundException.ErrorCode()) {
|
||||
return trace.NotFound(requestErr.Error())
|
||||
return trace.NotFound("%s", requestErr)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,22 +75,22 @@ func ConvertIAMError(err error) error {
|
||||
|
||||
var unmodifiableEntityErr *iamtypes.UnmodifiableEntityException
|
||||
if errors.As(err, &unmodifiableEntityErr) {
|
||||
return trace.AccessDenied(*unmodifiableEntityErr.Message)
|
||||
return trace.AccessDenied("%s", *unmodifiableEntityErr.Message)
|
||||
}
|
||||
|
||||
var entityExistsError *iamtypes.EntityAlreadyExistsException
|
||||
if errors.As(err, &entityExistsError) {
|
||||
return trace.AlreadyExists(*entityExistsError.Message)
|
||||
return trace.AlreadyExists("%s", *entityExistsError.Message)
|
||||
}
|
||||
|
||||
var entityNotFound *iamtypes.NoSuchEntityException
|
||||
if errors.As(err, &entityNotFound) {
|
||||
return trace.NotFound(*entityNotFound.Message)
|
||||
return trace.NotFound("%s", *entityNotFound.Message)
|
||||
}
|
||||
|
||||
var malformedPolicyDocument *iamtypes.MalformedPolicyDocumentException
|
||||
if errors.As(err, &malformedPolicyDocument) {
|
||||
return trace.BadParameter(*malformedPolicyDocument.Message)
|
||||
return trace.BadParameter("%s", *malformedPolicyDocument.Message)
|
||||
}
|
||||
|
||||
return ConvertRequestFailureError(err)
|
||||
|
||||
@@ -41,14 +41,14 @@ func ConvertResponseError(err error) error {
|
||||
case errors.As(err, &responseErr):
|
||||
switch responseErr.StatusCode {
|
||||
case http.StatusForbidden:
|
||||
return trace.AccessDenied(responseErr.Error())
|
||||
return trace.AccessDenied("%s", responseErr)
|
||||
case http.StatusConflict:
|
||||
return trace.AlreadyExists(responseErr.Error())
|
||||
return trace.AlreadyExists("%s", responseErr)
|
||||
case http.StatusNotFound:
|
||||
return trace.NotFound(responseErr.Error())
|
||||
return trace.NotFound("%s", responseErr)
|
||||
}
|
||||
case errors.As(err, &authenticationFailedErr):
|
||||
return trace.AccessDenied(authenticationFailedErr.Error())
|
||||
return trace.AccessDenied("%s", authenticationFailedErr)
|
||||
}
|
||||
return err // Return unmodified.
|
||||
}
|
||||
|
||||
@@ -180,7 +180,7 @@ func (c *redisEnterpriseClient) listDatabasesByClusters(ctx context.Context, clu
|
||||
func (c *redisEnterpriseClient) listDatabasesByCluster(ctx context.Context, cluster *armredisenterprise.Cluster) ([]*RedisEnterpriseDatabase, error) {
|
||||
resourceID, err := arm.ParseResourceID(StringVal(cluster.ID))
|
||||
if err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
|
||||
var databases []*RedisEnterpriseDatabase
|
||||
|
||||
@@ -55,7 +55,7 @@ func convertLoadConfigError(configErr error) error {
|
||||
var sharedConfigProfileNotExistError config.SharedConfigProfileNotExistError
|
||||
switch {
|
||||
case errors.As(configErr, &sharedConfigProfileNotExistError):
|
||||
return trace.NotFound(configErr.Error())
|
||||
return trace.NotFound("%s", configErr)
|
||||
}
|
||||
|
||||
return configErr
|
||||
|
||||
@@ -1417,13 +1417,13 @@ func applySSHConfig(fc *FileConfig, cfg *servicecfg.Config) (err error) {
|
||||
"Teleport binary was built without PAM support. To continue either download a \n" +
|
||||
"Teleport binary build with PAM support from https://goteleport.com/teleport \n" +
|
||||
"or disable PAM in file configuration."
|
||||
return trace.BadParameter(errorMessage)
|
||||
return trace.BadParameter("%s", errorMessage)
|
||||
}
|
||||
if !pam.SystemHasPAM() {
|
||||
const errorMessage = "Unable to start Teleport: PAM was enabled in file configuration but this \n" +
|
||||
"system does not have the needed PAM library installed. To continue either \n" +
|
||||
"install libpam or disable PAM in file configuration."
|
||||
return trace.BadParameter(errorMessage)
|
||||
return trace.BadParameter("%s", errorMessage)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3957,7 +3957,7 @@ func TestApplyOktaConfig(t *testing.T) {
|
||||
},
|
||||
},
|
||||
errAssertionFunc: func(tt require.TestingT, err error, i ...interface{}) {
|
||||
require.ErrorIs(t, err, trace.BadParameter(`okta_service is enabled but no api_endpoint is specified`))
|
||||
require.ErrorIs(t, err, trace.BadParameter("okta_service is enabled but no api_endpoint is specified"))
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -3983,7 +3983,7 @@ func TestApplyOktaConfig(t *testing.T) {
|
||||
APIEndpoint: `http://`,
|
||||
},
|
||||
errAssertionFunc: func(tt require.TestingT, err error, i ...interface{}) {
|
||||
require.ErrorIs(t, err, trace.BadParameter(`api_endpoint has no host`))
|
||||
require.ErrorIs(t, err, trace.BadParameter("api_endpoint has no host"))
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -3996,7 +3996,7 @@ func TestApplyOktaConfig(t *testing.T) {
|
||||
APIEndpoint: `//hostname`,
|
||||
},
|
||||
errAssertionFunc: func(tt require.TestingT, err error, i ...interface{}) {
|
||||
require.ErrorIs(t, err, trace.BadParameter(`api_endpoint has no scheme`))
|
||||
require.ErrorIs(t, err, trace.BadParameter("api_endpoint has no scheme"))
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -4008,7 +4008,7 @@ func TestApplyOktaConfig(t *testing.T) {
|
||||
APIEndpoint: "https://test-endpoint",
|
||||
},
|
||||
errAssertionFunc: func(tt require.TestingT, err error, i ...interface{}) {
|
||||
require.ErrorIs(t, err, trace.BadParameter(`okta_service is enabled but no api_token_path is specified`))
|
||||
require.ErrorIs(t, err, trace.BadParameter("okta_service is enabled but no api_token_path is specified"))
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -4021,7 +4021,7 @@ func TestApplyOktaConfig(t *testing.T) {
|
||||
APITokenPath: "/non-existent/path",
|
||||
},
|
||||
errAssertionFunc: func(tt require.TestingT, err error, i ...interface{}) {
|
||||
require.ErrorIs(t, err, trace.BadParameter(`error trying to find file %s`, i...))
|
||||
require.ErrorIs(t, err, trace.BadParameter("error trying to find file %s", i...))
|
||||
},
|
||||
},
|
||||
{
|
||||
|
||||
@@ -699,12 +699,12 @@ func getRoleARNForAssumedRole(iamClient iamClient, identity awslib.Identity) (aw
|
||||
RoleName: aws.String(identity.GetName()),
|
||||
})
|
||||
if err != nil || out == nil || out.Role == nil || out.Role.Arn == nil {
|
||||
return nil, trace.BadParameter(failedToResolveAssumeRoleARN)
|
||||
return nil, trace.BadParameter("%s", failedToResolveAssumeRoleARN)
|
||||
}
|
||||
|
||||
roleIdentity, err := awslib.IdentityFromArn(*out.Role.Arn)
|
||||
if err != nil {
|
||||
return nil, trace.BadParameter(failedToResolveAssumeRoleARN)
|
||||
return nil, trace.BadParameter("%s", failedToResolveAssumeRoleARN)
|
||||
}
|
||||
return roleIdentity, nil
|
||||
}
|
||||
|
||||
@@ -235,7 +235,7 @@ func (s *FakeDeviceService) CreateDeviceEnrollToken(ctx context.Context, req *de
|
||||
|
||||
// Auto-enrollment path.
|
||||
if err := validateCollectedData(req.DeviceData); err != nil {
|
||||
return nil, trace.AccessDenied(err.Error())
|
||||
return nil, trace.AccessDenied("%s", err)
|
||||
}
|
||||
|
||||
return &devicepb.DeviceEnrollToken{
|
||||
@@ -629,11 +629,11 @@ func (s *FakeDeviceService) spendDeviceWebToken(webToken *devicepb.DeviceWebToke
|
||||
|
||||
switch {
|
||||
case storedToken == "": // Invalid attempt state or token already spent.
|
||||
return nil, trace.AccessDenied(invalidWebTokenMessage)
|
||||
return nil, trace.AccessDenied("%s", invalidWebTokenMessage)
|
||||
case storedToken != webToken.Token: // Bad token
|
||||
return nil, trace.AccessDenied(invalidWebTokenMessage)
|
||||
return nil, trace.AccessDenied("%s", invalidWebTokenMessage)
|
||||
case attempt.expectedDeviceID != dev.pb.Id: // Failed expected device check.
|
||||
return nil, trace.AccessDenied(invalidWebTokenMessage)
|
||||
return nil, trace.AccessDenied("%s", invalidWebTokenMessage)
|
||||
}
|
||||
|
||||
// Issue a new confirmation token.
|
||||
@@ -646,7 +646,7 @@ func (s *FakeDeviceService) spendDeviceWebToken(webToken *devicepb.DeviceWebToke
|
||||
}
|
||||
|
||||
// Token ID not found.
|
||||
return nil, trace.AccessDenied(invalidWebTokenMessage)
|
||||
return nil, trace.AccessDenied("%s", invalidWebTokenMessage)
|
||||
}
|
||||
|
||||
func authenticateDeviceMacOS(
|
||||
|
||||
@@ -542,10 +542,10 @@ func (l *Log) handleAWSValidationError(ctx context.Context, err error, sessionID
|
||||
|
||||
se, ok := trimEventSize(in)
|
||||
if !ok {
|
||||
return trace.BadParameter(err.Error())
|
||||
return trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := l.putAuditEvent(context.WithValue(ctx, largeEventHandledContextKey, true), sessionID, se); err != nil {
|
||||
return trace.BadParameter(err.Error())
|
||||
return trace.BadParameter("%s", err)
|
||||
}
|
||||
l.logger.InfoContext(ctx, "Uploaded trimmed event to DynamoDB backend.", "event_id", in.GetID(), "event_type", in.GetType())
|
||||
events.MetricStoredTrimmedEvents.Inc()
|
||||
@@ -1315,27 +1315,27 @@ func convertError(err error) error {
|
||||
|
||||
var conditionalCheckFailedError *dynamodbtypes.ConditionalCheckFailedException
|
||||
if errors.As(err, &conditionalCheckFailedError) {
|
||||
return trace.AlreadyExists(conditionalCheckFailedError.ErrorMessage())
|
||||
return trace.AlreadyExists("%s", conditionalCheckFailedError.ErrorMessage())
|
||||
}
|
||||
|
||||
var throughputExceededError *dynamodbtypes.ProvisionedThroughputExceededException
|
||||
if errors.As(err, &throughputExceededError) {
|
||||
return trace.ConnectionProblem(throughputExceededError, throughputExceededError.ErrorMessage())
|
||||
return trace.ConnectionProblem(throughputExceededError, "%s", throughputExceededError.ErrorMessage())
|
||||
}
|
||||
|
||||
var notFoundError *dynamodbtypes.ResourceNotFoundException
|
||||
if errors.As(err, ¬FoundError) {
|
||||
return trace.NotFound(notFoundError.ErrorMessage())
|
||||
return trace.NotFound("%s", notFoundError.ErrorMessage())
|
||||
}
|
||||
|
||||
var collectionLimitExceededError *dynamodbtypes.ItemCollectionSizeLimitExceededException
|
||||
if errors.As(err, ¬FoundError) {
|
||||
return trace.BadParameter(collectionLimitExceededError.ErrorMessage())
|
||||
return trace.BadParameter("%s", collectionLimitExceededError.ErrorMessage())
|
||||
}
|
||||
|
||||
var internalError *dynamodbtypes.InternalServerError
|
||||
if errors.As(err, &internalError) {
|
||||
return trace.BadParameter(internalError.ErrorMessage())
|
||||
return trace.BadParameter("%s", internalError.ErrorMessage())
|
||||
}
|
||||
|
||||
var ae smithy.APIError
|
||||
|
||||
@@ -528,7 +528,7 @@ func (u *Uploader) upload(ctx context.Context, up *upload) error {
|
||||
case <-stream.Done():
|
||||
if errStream, ok := stream.(interface{ Error() error }); ok {
|
||||
if err := errStream.Error(); err != nil {
|
||||
return trace.ConnectionProblem(err, err.Error())
|
||||
return trace.ConnectionProblem(err, "%s", err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -332,15 +332,15 @@ func (h *Handler) ensureBucket() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func convertGCSError(err error, args ...interface{}) error {
|
||||
func convertGCSError(err error) error {
|
||||
if err == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
switch {
|
||||
case errors.Is(err, storage.ErrBucketNotExist), errors.Is(err, storage.ErrObjectNotExist):
|
||||
return trace.NotFound(err.Error(), args...)
|
||||
return trace.NotFound("%s", err)
|
||||
default:
|
||||
return trace.Wrap(err, args...)
|
||||
return trace.Wrap(err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -452,8 +452,7 @@ func (h *Handler) ensureBucket(ctx context.Context) error {
|
||||
ACL: awstypes.BucketCannedACLPrivate,
|
||||
}
|
||||
_, err = h.client.CreateBucket(ctx, input)
|
||||
err = awsutils.ConvertS3Error(err, fmt.Sprintf("bucket %v already exists", aws.String(h.Bucket)))
|
||||
if err != nil {
|
||||
if err := awsutils.ConvertS3Error(err); err != nil {
|
||||
if !trace.IsAlreadyExists(err) {
|
||||
return trace.Wrap(err)
|
||||
}
|
||||
@@ -469,9 +468,8 @@ func (h *Handler) ensureBucket(ctx context.Context) error {
|
||||
Status: awstypes.BucketVersioningStatusEnabled,
|
||||
},
|
||||
})
|
||||
err = awsutils.ConvertS3Error(err, fmt.Sprintf("failed to set versioning state for bucket %q", h.Bucket))
|
||||
if err != nil {
|
||||
return trace.Wrap(err)
|
||||
if err := awsutils.ConvertS3Error(err); err != nil {
|
||||
return trace.Wrap(err, "failed to set versioning state for bucket %q", h.Bucket)
|
||||
}
|
||||
|
||||
// Turn on server-side encryption for the bucket.
|
||||
@@ -488,9 +486,8 @@ func (h *Handler) ensureBucket(ctx context.Context) error {
|
||||
},
|
||||
},
|
||||
})
|
||||
err = awsutils.ConvertS3Error(err, fmt.Sprintf("failed to set encryption state for bucket %q", h.Bucket))
|
||||
if err != nil {
|
||||
return trace.Wrap(err)
|
||||
if err := awsutils.ConvertS3Error(err); err != nil {
|
||||
return trace.Wrap(err, "failed to set encryption state for bucket %q", h.Bucket)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
|
||||
@@ -23,7 +23,6 @@ import (
|
||||
"crypto/tls"
|
||||
"crypto/x509"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"net"
|
||||
"net/http"
|
||||
@@ -366,12 +365,11 @@ func (i *eicedConn) handleIOError(err error) error {
|
||||
var closeErr *websocket.CloseError
|
||||
if errors.As(err, &closeErr) {
|
||||
return trace.ConnectionProblem(err,
|
||||
fmt.Sprintf("Could not connect to %s via EC2 Instance Connect Endpoint %s. "+
|
||||
"Could not connect to %s via EC2 Instance Connect Endpoint %s. "+
|
||||
"Please ensure the instance's SecurityGroups allow inbound TCP traffic on port 22 from %s",
|
||||
i.ec2InstanceID,
|
||||
i.eiceID,
|
||||
i.subnetID,
|
||||
),
|
||||
i.ec2InstanceID,
|
||||
i.eiceID,
|
||||
i.subnetID,
|
||||
)
|
||||
}
|
||||
return trace.Wrap(err)
|
||||
|
||||
@@ -394,7 +394,7 @@ func enrollEKSCluster(ctx context.Context, log *slog.Logger, clock clockwork.Clo
|
||||
if req.IsCloud && !eksCluster.ResourcesVpcConfig.EndpointPublicAccess {
|
||||
return "",
|
||||
usertasks.AutoDiscoverEKSIssueMissingEndpoingPublicAccess,
|
||||
trace.AccessDenied(`can't enroll %q because it is not accessible from Teleport Cloud, please enable endpoint public access in your EKS cluster and try again.`, clusterName)
|
||||
trace.AccessDenied("can't enroll %q because it is not accessible from Teleport Cloud, please enable endpoint public access in your EKS cluster and try again.", clusterName)
|
||||
}
|
||||
|
||||
// When clusters are using CONFIG_MAP, API is not acessible and thus Teleport can't install the Teleport's Helm chart.
|
||||
|
||||
@@ -83,7 +83,7 @@ func parseContextOverrideError(err error) error {
|
||||
"Please check the template syntax and try again.\n" +
|
||||
supportedFunctionsMsg
|
||||
if err == nil {
|
||||
return trace.BadParameter(msg)
|
||||
return trace.BadParameter("%s", msg)
|
||||
}
|
||||
return trace.BadParameter(
|
||||
msg+
|
||||
|
||||
+10
-10
@@ -548,7 +548,7 @@ func (f *Forwarder) authenticate(req *http.Request) (*authContext, error) {
|
||||
userTypeI, err := authz.UserFromContext(ctx)
|
||||
if err != nil {
|
||||
f.log.WarnContext(ctx, "error getting user from context", "error", err)
|
||||
return nil, trace.AccessDenied(accessDeniedMsg)
|
||||
return nil, trace.AccessDenied("%s", accessDeniedMsg)
|
||||
}
|
||||
switch userTypeI.(type) {
|
||||
case authz.LocalUser:
|
||||
@@ -559,10 +559,10 @@ func (f *Forwarder) authenticate(req *http.Request) (*authContext, error) {
|
||||
f.log.WarnContext(ctx, "Denying proxy access to unauthenticated user - this can sometimes be caused by inadvertently using an HTTP load balancer instead of a TCP load balancer on the Kubernetes port",
|
||||
"user_type", logutils.TypeAttr(userTypeI),
|
||||
)
|
||||
return nil, trace.AccessDenied(accessDeniedMsg)
|
||||
return nil, trace.AccessDenied("%s", accessDeniedMsg)
|
||||
default:
|
||||
f.log.WarnContext(ctx, "Denying proxy access to unsupported user type", "user_type", logutils.TypeAttr(userTypeI))
|
||||
return nil, trace.AccessDenied(accessDeniedMsg)
|
||||
return nil, trace.AccessDenied("%s", accessDeniedMsg)
|
||||
}
|
||||
|
||||
userContext, err := f.cfg.Authz.Authorize(ctx)
|
||||
@@ -574,7 +574,7 @@ func (f *Forwarder) authenticate(req *http.Request) (*authContext, error) {
|
||||
if err != nil {
|
||||
f.log.WarnContext(ctx, "Unable to setup context", "error", err)
|
||||
if trace.IsAccessDenied(err) {
|
||||
return nil, trace.AccessDenied(accessDeniedMsg)
|
||||
return nil, trace.AccessDenied("%s", accessDeniedMsg)
|
||||
}
|
||||
return nil, trace.Wrap(err)
|
||||
}
|
||||
@@ -1088,16 +1088,16 @@ func (f *Forwarder) authorize(ctx context.Context, actx *authContext) error {
|
||||
kubeAccessDetails, err := f.getKubeAccessDetails(actx.kubeServers, actx.Checker, actx.kubeClusterName, actx.sessionTTL, actx.kubeResource)
|
||||
if err != nil && !trace.IsNotFound(err) {
|
||||
if actx.kubeResource != nil {
|
||||
return trace.AccessDenied(notFoundMessage)
|
||||
return trace.AccessDenied("%s", notFoundMessage)
|
||||
}
|
||||
// TODO (tigrato): should return another message here.
|
||||
return trace.AccessDenied(accessDeniedMsg)
|
||||
return trace.AccessDenied("%s", accessDeniedMsg)
|
||||
// roles.CheckKubeGroupsAndUsers returns trace.NotFound if the user does
|
||||
// does not have at least one configured kubernetes_users or kubernetes_groups.
|
||||
} else if trace.IsNotFound(err) {
|
||||
const errMsg = "Your user's Teleport role does not allow Kubernetes access." +
|
||||
" Please ask cluster administrator to ensure your role has appropriate kubernetes_groups and kubernetes_users set."
|
||||
return trace.NotFound(errMsg)
|
||||
return trace.NotFound("%s", errMsg)
|
||||
}
|
||||
|
||||
kubeUsers = kubeAccessDetails.kubeUsers
|
||||
@@ -1125,7 +1125,7 @@ func (f *Forwarder) authorize(ctx context.Context, actx *authContext) error {
|
||||
case errors.Is(err, services.ErrTrustedDeviceRequired):
|
||||
return trace.Wrap(err)
|
||||
case err != nil:
|
||||
return trace.AccessDenied(notFoundMessage)
|
||||
return trace.AccessDenied("%s", notFoundMessage)
|
||||
}
|
||||
|
||||
// If the user has active Access requests we need to validate that they allow
|
||||
@@ -1141,7 +1141,7 @@ func (f *Forwarder) authorize(ctx context.Context, actx *authContext) error {
|
||||
// list will be empty.
|
||||
allowed, denied := actx.Checker.GetKubeResources(ks)
|
||||
if result, err := matchKubernetesResource(*actx.kubeResource, allowed, denied); err != nil || !result {
|
||||
return trace.AccessDenied(notFoundMessage)
|
||||
return trace.AccessDenied("%s", notFoundMessage)
|
||||
}
|
||||
}
|
||||
// store a copy of the Kubernetes Cluster.
|
||||
@@ -1154,7 +1154,7 @@ func (f *Forwarder) authorize(ctx context.Context, actx *authContext) error {
|
||||
)
|
||||
return nil
|
||||
}
|
||||
return trace.AccessDenied(notFoundMessage)
|
||||
return trace.AccessDenied("%s", notFoundMessage)
|
||||
}
|
||||
|
||||
// matchKubernetesResource checks if the Kubernetes Resource does not match any
|
||||
|
||||
@@ -81,7 +81,7 @@ func (f *Forwarder) listResources(sess *clusterSession, w http.ResponseWriter, r
|
||||
sess.requestVerb,
|
||||
sess.apiResource,
|
||||
)
|
||||
return nil, trace.AccessDenied(notFoundMessage)
|
||||
return nil, trace.AccessDenied("%s", notFoundMessage)
|
||||
}
|
||||
// isWatch identifies if the request is long-lived watch stream based on
|
||||
// HTTP connection.
|
||||
|
||||
@@ -104,10 +104,10 @@ func ensureRouteNotOverwritten(ident *tlsca.Identity, routeToCluster, kubernetes
|
||||
|
||||
const overwriteDeniedMsg = "existing route in identity may not be overwritten"
|
||||
if ident.RouteToCluster != "" && teleportClusterChanged {
|
||||
return trace.AccessDenied(overwriteDeniedMsg)
|
||||
return trace.AccessDenied("%s", overwriteDeniedMsg)
|
||||
}
|
||||
if ident.KubernetesCluster != "" && kubeClusterChanged {
|
||||
return trace.AccessDenied(overwriteDeniedMsg)
|
||||
return trace.AccessDenied("%s", overwriteDeniedMsg)
|
||||
}
|
||||
|
||||
return nil
|
||||
@@ -127,7 +127,7 @@ func (f *Forwarder) singleCertHandler() httprouter.Handle {
|
||||
userTypeI, err := authz.UserFromContext(req.Context())
|
||||
if err != nil {
|
||||
f.log.WarnContext(req.Context(), "error getting user from context", "error", err)
|
||||
return nil, trace.AccessDenied(accessDeniedMsg)
|
||||
return nil, trace.AccessDenied("%s", accessDeniedMsg)
|
||||
}
|
||||
|
||||
// Insert the extracted routing information from the path into the
|
||||
@@ -170,7 +170,7 @@ func (f *Forwarder) singleCertHandler() httprouter.Handle {
|
||||
userType = o
|
||||
default:
|
||||
f.log.WarnContext(req.Context(), "Denying proxy access to unsupported user type", "user_type", logutils.TypeAttr(userTypeI))
|
||||
return nil, trace.AccessDenied(accessDeniedMsg)
|
||||
return nil, trace.AccessDenied("%s", accessDeniedMsg)
|
||||
}
|
||||
|
||||
ctx := authz.ContextWithUser(req.Context(), userType)
|
||||
|
||||
@@ -472,7 +472,7 @@ func (e *wsStreamClient) handlePortForwardRequest(conn net.Conn, remoteConn *gwe
|
||||
return
|
||||
}
|
||||
case portforwardErrChan:
|
||||
err := trace.Errorf(string(buf[1:]))
|
||||
err := trace.Errorf("%s", string(buf[1:]))
|
||||
errChan <- trace.Wrap(err)
|
||||
// Once we receive an error from streamErr, we must stop processing.
|
||||
// The server also stops the execution and closes the connection.
|
||||
|
||||
@@ -203,7 +203,7 @@ func (c *Client) request(ctx context.Context, method string, uri string, payload
|
||||
lastErr = trace.Wrap(graphError)
|
||||
} else {
|
||||
// API did not return a valid error structure, best-effort reporting.
|
||||
lastErr = trace.Errorf(resp.Status)
|
||||
lastErr = trace.Errorf("%s", resp.Status)
|
||||
}
|
||||
if !isRetriable(resp.StatusCode) {
|
||||
break
|
||||
|
||||
@@ -513,12 +513,12 @@ func (m *Mux) detect(conn net.Conn) (*Conn, error) {
|
||||
}
|
||||
|
||||
if m.PROXYProtocolMode == PROXYProtocolOff {
|
||||
return nil, trace.BadParameter(externalProxyProtocolDisabledError)
|
||||
return nil, trace.BadParameter("%s", externalProxyProtocolDisabledError)
|
||||
}
|
||||
|
||||
if unsignedPROXYLineReceived {
|
||||
// We allow only one unsigned PROXY line
|
||||
return nil, trace.BadParameter(duplicateUnsignedProxyLineError)
|
||||
return nil, trace.BadParameter("%s", duplicateUnsignedProxyLineError)
|
||||
}
|
||||
unsignedPROXYLineReceived = true
|
||||
|
||||
@@ -534,7 +534,7 @@ func (m *Mux) detect(conn net.Conn) (*Conn, error) {
|
||||
|
||||
if proxyLine != nil && proxyLine.IsVerified {
|
||||
// Unsigned PROXY line after signed one should not happen
|
||||
return nil, trace.BadParameter(unsignedPROXYLineAfterSignedError)
|
||||
return nil, trace.BadParameter("%s", unsignedPROXYLineAfterSignedError)
|
||||
}
|
||||
|
||||
proxyLine = newPROXYLine
|
||||
@@ -548,7 +548,7 @@ func (m *Mux) detect(conn net.Conn) (*Conn, error) {
|
||||
if newPROXYLine == nil {
|
||||
if unsignedPROXYLineReceived {
|
||||
// We allow only one unsigned PROXY line
|
||||
return nil, trace.BadParameter(duplicateUnsignedProxyLineError)
|
||||
return nil, trace.BadParameter("%s", duplicateUnsignedProxyLineError)
|
||||
}
|
||||
unsignedPROXYLineReceived = true
|
||||
continue // Skipping LOCAL command of PROXY protocol
|
||||
@@ -578,7 +578,7 @@ func (m *Mux) detect(conn net.Conn) (*Conn, error) {
|
||||
// we accept, otherwise reject
|
||||
if newPROXYLine.IsVerified {
|
||||
if proxyLine != nil && proxyLine.IsVerified {
|
||||
return nil, trace.BadParameter(duplicateSignedProxyLineError)
|
||||
return nil, trace.BadParameter("%s", duplicateSignedProxyLineError)
|
||||
}
|
||||
|
||||
proxyLine = newPROXYLine
|
||||
@@ -591,12 +591,12 @@ func (m *Mux) detect(conn net.Conn) (*Conn, error) {
|
||||
|
||||
// This is unsigned proxy line, return error if external PROXY protocol is not enabled
|
||||
if m.PROXYProtocolMode == PROXYProtocolOff {
|
||||
return nil, trace.BadParameter(externalProxyProtocolDisabledError)
|
||||
return nil, trace.BadParameter("%s", externalProxyProtocolDisabledError)
|
||||
}
|
||||
|
||||
if unsignedPROXYLineReceived {
|
||||
// We allow only one unsigned PROXY line
|
||||
return nil, trace.BadParameter(duplicateUnsignedProxyLineError)
|
||||
return nil, trace.BadParameter("%s", duplicateUnsignedProxyLineError)
|
||||
}
|
||||
unsignedPROXYLineReceived = true
|
||||
|
||||
@@ -612,7 +612,7 @@ func (m *Mux) detect(conn net.Conn) (*Conn, error) {
|
||||
|
||||
// Unsigned PROXY line after signed should not happen
|
||||
if proxyLine != nil && proxyLine.IsVerified {
|
||||
return nil, trace.BadParameter(unsignedPROXYLineAfterSignedError)
|
||||
return nil, trace.BadParameter("%s", unsignedPROXYLineAfterSignedError)
|
||||
}
|
||||
|
||||
proxyLine = newPROXYLine
|
||||
@@ -631,7 +631,7 @@ func (m *Mux) detect(conn net.Conn) (*Conn, error) {
|
||||
}
|
||||
}
|
||||
// if code ended here after three attempts, something is wrong
|
||||
return nil, trace.BadParameter(unknownProtocolError)
|
||||
return nil, trace.BadParameter("%s", unknownProtocolError)
|
||||
}
|
||||
|
||||
// checkPROXYProtocolRequirement checks that if multiplexer is required to receive unsigned PROXY line
|
||||
|
||||
+1
-1
@@ -491,7 +491,7 @@ func (p *PAM) codeToError(returnValue C.int) error {
|
||||
// released.
|
||||
err := C._pam_strerror(pamHandle, p.pamh, returnValue)
|
||||
if err != nil {
|
||||
return trace.BadParameter(C.GoString(err))
|
||||
return trace.BadParameter("%s", C.GoString(err))
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
@@ -706,14 +706,14 @@ func (s *localSite) getConn(params reversetunnelclient.DialParams) (conn net.Con
|
||||
// Skip direct dial when the tunnel error is not a not found error. This
|
||||
// means the agent is tunneling but the connection failed for some reason.
|
||||
if !trace.IsNotFound(tunnelErr) {
|
||||
return nil, false, trace.ConnectionProblem(tunnelErr, tunnelMsg)
|
||||
return nil, false, trace.ConnectionProblem(tunnelErr, "%s", tunnelMsg)
|
||||
}
|
||||
|
||||
skip, err := s.skipDirectDial(params)
|
||||
if err != nil {
|
||||
return nil, false, trace.Wrap(err)
|
||||
} else if skip {
|
||||
return nil, false, trace.ConnectionProblem(tunnelErr, tunnelMsg)
|
||||
return nil, false, trace.ConnectionProblem(tunnelErr, "%s", tunnelMsg)
|
||||
}
|
||||
|
||||
// If no tunnel connection was found, dial to the target host.
|
||||
@@ -727,7 +727,7 @@ func (s *localSite) getConn(params reversetunnelclient.DialParams) (conn net.Con
|
||||
"direct_error", directErr,
|
||||
)
|
||||
aggregateErr := trace.NewAggregate(tunnelErr, peerErr, directErr)
|
||||
return nil, false, trace.ConnectionProblem(aggregateErr, directMsg)
|
||||
return nil, false, trace.ConnectionProblem(aggregateErr, "%s", directMsg)
|
||||
}
|
||||
|
||||
// Return a direct dialed connection.
|
||||
|
||||
@@ -984,11 +984,10 @@ func (s *remoteSite) connThroughTunnel(req *sshutils.DialReq) (*sshutils.ChConn,
|
||||
if err == nil {
|
||||
// Return the appropriate message if the user is trying to connect to a
|
||||
// cluster or a node.
|
||||
message := fmt.Sprintf("cluster %v is offline", s.GetName())
|
||||
if req.Address != constants.RemoteAuthServer {
|
||||
message = fmt.Sprintf("node %v is offline", req.Address)
|
||||
return nil, trace.ConnectionProblem(nil, "node %v is offline", req.Address)
|
||||
}
|
||||
err = trace.ConnectionProblem(nil, message)
|
||||
return nil, trace.ConnectionProblem(nil, "cluster %v is offline", s.GetName())
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -977,7 +977,7 @@ func (s *server) checkClientCert(user string, clusterName string, cert *ssh.Cert
|
||||
FIPS: s.FIPS,
|
||||
}
|
||||
if err := checker.CheckCert(user, cert); err != nil {
|
||||
return trace.BadParameter(err.Error())
|
||||
return trace.BadParameter("%s", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
@@ -79,12 +79,12 @@ func CheckDynamicLabelsInDenyRules(r types.Role) error {
|
||||
}
|
||||
for label := range labelMatchers.Labels {
|
||||
if strings.HasPrefix(label, types.TeleportDynamicLabelPrefix) {
|
||||
return trace.BadParameter(dynamicLabelsErrorMessage)
|
||||
return trace.BadParameter("%s", dynamicLabelsErrorMessage)
|
||||
}
|
||||
}
|
||||
const expressionMatch = `"` + types.TeleportDynamicLabelPrefix
|
||||
if strings.Contains(labelMatchers.Expression, expressionMatch) {
|
||||
return trace.BadParameter(dynamicLabelsErrorMessage)
|
||||
return trace.BadParameter("%s", dynamicLabelsErrorMessage)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,7 +93,7 @@ func CheckDynamicLabelsInDenyRules(r types.Role) error {
|
||||
r.GetImpersonateConditions(types.Deny).Where,
|
||||
} {
|
||||
if strings.Contains(where, types.TeleportDynamicLabelPrefix) {
|
||||
return trace.BadParameter(dynamicLabelsErrorMessage)
|
||||
return trace.BadParameter("%s", dynamicLabelsErrorMessage)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -107,7 +107,7 @@ func UnmarshalAccessList(data []byte, opts ...MarshalOption) (*accesslist.Access
|
||||
}
|
||||
var accessList accesslist.AccessList
|
||||
if err := utils.FastUnmarshal(data, &accessList); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := accessList.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
@@ -208,7 +208,7 @@ func UnmarshalAccessListMember(data []byte, opts ...MarshalOption) (*accesslist.
|
||||
}
|
||||
var member accesslist.AccessListMember
|
||||
if err := utils.FastUnmarshal(data, &member); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := member.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
@@ -270,7 +270,7 @@ func UnmarshalAccessListReview(data []byte, opts ...MarshalOption) (*accesslist.
|
||||
}
|
||||
var review accesslist.Review
|
||||
if err := utils.FastUnmarshal(data, &review); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := review.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -1209,7 +1209,7 @@ func (m *RequestValidator) Validate(ctx context.Context, req types.AccessRequest
|
||||
return trace.Wrap(err)
|
||||
}
|
||||
if required {
|
||||
return trace.BadParameter(explanation)
|
||||
return trace.BadParameter("%s", explanation)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -92,7 +92,7 @@ func UnmarshalApp(data []byte, opts ...MarshalOption) (types.Application, error)
|
||||
case types.V3:
|
||||
var app types.AppV3
|
||||
if err := utils.FastUnmarshal(data, &app); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := app.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
@@ -144,7 +144,7 @@ func UnmarshalAppServer(data []byte, opts ...MarshalOption) (types.AppServer, er
|
||||
case types.V3:
|
||||
var s types.AppServerV3
|
||||
if err := utils.FastUnmarshal(data, &s); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := s.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -52,7 +52,7 @@ func UnmarshalClusterAuditConfig(bytes []byte, opts ...MarshalOption) (types.Clu
|
||||
}
|
||||
|
||||
if err := utils.FastUnmarshal(bytes, &auditConfig); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := auditConfig.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -81,7 +81,7 @@ func UnmarshalAuthPreference(bytes []byte, opts ...MarshalOption) (types.AuthPre
|
||||
}
|
||||
|
||||
if err := utils.FastUnmarshal(bytes, &authPreference); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := authPreference.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -331,7 +331,7 @@ func MarshalCertRoles(roles []string) (string, error) {
|
||||
func UnmarshalCertRoles(data string) ([]string, error) {
|
||||
var certRoles types.CertRoles
|
||||
if err := utils.FastUnmarshal([]byte(data), &certRoles); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
return certRoles.Roles, nil
|
||||
}
|
||||
@@ -351,7 +351,7 @@ func UnmarshalCertAuthority(bytes []byte, opts ...MarshalOption) (types.CertAuth
|
||||
case types.V2:
|
||||
var ca types.CertAuthorityV2
|
||||
if err := utils.FastUnmarshal(bytes, &ca); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
|
||||
if err := ValidateCertAuthority(&ca); err != nil {
|
||||
|
||||
@@ -49,7 +49,7 @@ func UnmarshalClusterName(bytes []byte, opts ...MarshalOption) (types.ClusterNam
|
||||
}
|
||||
|
||||
if err := utils.FastUnmarshal(bytes, &clusterName); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
|
||||
err = clusterName.CheckAndSetDefaults()
|
||||
|
||||
@@ -89,7 +89,7 @@ func UnmarshalConnectionDiagnostic(data []byte, opts ...MarshalOption) (types.Co
|
||||
case types.V1:
|
||||
var s types.ConnectionDiagnosticV1
|
||||
if err := utils.FastUnmarshal(data, &s); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
|
||||
if err := s.CheckAndSetDefaults(); err != nil {
|
||||
|
||||
@@ -100,7 +100,7 @@ func UnmarshalDatabase(data []byte, opts ...MarshalOption) (types.Database, erro
|
||||
case types.V3:
|
||||
var database types.DatabaseV3
|
||||
if err := utils.FastUnmarshal(data, &database); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := database.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -61,7 +61,7 @@ func UnmarshalDatabaseServer(data []byte, opts ...MarshalOption) (types.Database
|
||||
case types.V3:
|
||||
var s types.DatabaseServerV3
|
||||
if err := utils.FastUnmarshal(data, &s); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := s.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -75,7 +75,7 @@ func UnmarshalDatabaseService(data []byte, opts ...MarshalOption) (types.Databas
|
||||
case types.V1:
|
||||
var s types.DatabaseServiceV1
|
||||
if err := utils.FastUnmarshal(data, &s); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := s.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -80,7 +80,7 @@ func UnmarshalWindowsDesktop(data []byte, opts ...MarshalOption) (types.WindowsD
|
||||
case types.V3:
|
||||
var s types.WindowsDesktopV3
|
||||
if err := utils.FastUnmarshal(data, &s); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := s.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
@@ -132,7 +132,7 @@ func UnmarshalWindowsDesktopService(data []byte, opts ...MarshalOption) (types.W
|
||||
case types.V3:
|
||||
var s types.WindowsDesktopServiceV3
|
||||
if err := utils.FastUnmarshal(data, &s); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := s.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -91,7 +91,7 @@ func UnmarshalDiscoveryConfig(data []byte, opts ...MarshalOption) (*discoverycon
|
||||
}
|
||||
var discoveryConfig *discoveryconfig.DiscoveryConfig
|
||||
if err := utils.FastUnmarshal(data, &discoveryConfig); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := discoveryConfig.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -74,7 +74,7 @@ func UnmarshalDynamicWindowsDesktop(data []byte, opts ...MarshalOption) (types.D
|
||||
case types.V1:
|
||||
var s types.DynamicWindowsDesktopV1
|
||||
if err := utils.FastUnmarshal(data, &s); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := s.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -36,7 +36,7 @@ func UnmarshalExternalAuditStorage(data []byte, opts ...MarshalOption) (*externa
|
||||
}
|
||||
var out *externalauditstorage.ExternalAuditStorage
|
||||
if err := utils.FastUnmarshal(data, &out); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := out.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -49,7 +49,7 @@ func getHeaderProtoJSONOptions() *protojson.UnmarshalOptions {
|
||||
func unmarshalHeaderWithProtoJSON(data []byte) (types.ResourceHeader, error) {
|
||||
var h types.MessageWithHeader
|
||||
if err := getHeaderProtoJSONOptions().Unmarshal(data, protoadapt.MessageV2Of(&h)); err != nil {
|
||||
return types.ResourceHeader{}, trace.BadParameter(err.Error())
|
||||
return types.ResourceHeader{}, trace.BadParameter("%s", err)
|
||||
}
|
||||
|
||||
return h.ResourceHeader, nil
|
||||
|
||||
@@ -39,7 +39,7 @@ func UnmarshalInstaller(data []byte, opts ...MarshalOption) (types.Installer, er
|
||||
}
|
||||
|
||||
if err := utils.FastUnmarshal(data, &installer); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := installer.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -91,7 +91,7 @@ func UnmarshalKubeServer(data []byte, opts ...MarshalOption) (types.KubeServer,
|
||||
case types.V3:
|
||||
var s types.KubernetesServerV3
|
||||
if err := utils.FastUnmarshal(data, &s); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := s.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
@@ -147,7 +147,7 @@ func UnmarshalKubeCluster(data []byte, opts ...MarshalOption) (types.KubeCluster
|
||||
case types.V3:
|
||||
var s types.KubernetesClusterV3
|
||||
if err := utils.FastUnmarshal(data, &s); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := s.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -35,7 +35,7 @@ func UnmarshalLicense(bytes []byte) (types.License, error) {
|
||||
var license types.LicenseV3
|
||||
err := utils.FastUnmarshal(bytes, &license)
|
||||
if err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
|
||||
if license.Version != types.V3 {
|
||||
|
||||
@@ -1035,7 +1035,7 @@ func (a *AccessListService) VerifyAccessListCreateLimit(ctx context.Context, tar
|
||||
}
|
||||
|
||||
const limitReachedMessage = "cluster has reached its limit for creating access lists, please contact the cluster administrator"
|
||||
return trace.AccessDenied(limitReachedMessage)
|
||||
return trace.AccessDenied("%s", limitReachedMessage)
|
||||
}
|
||||
|
||||
// keepAWSIdentityCenterLabels preserves member labels if
|
||||
|
||||
@@ -109,7 +109,7 @@ func unmarshalResource(data []byte, opts ...services.MarshalOption) (*testResour
|
||||
|
||||
var r testResource
|
||||
if err := utils.FastUnmarshal(data, &r); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := r.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -71,7 +71,7 @@ func unmarshalResource153(data []byte, opts ...services.MarshalOption) (*testRes
|
||||
|
||||
var r testResource153
|
||||
if err := utils.FastUnmarshal(data, &r); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
|
||||
if r.Metadata == nil {
|
||||
|
||||
@@ -131,7 +131,7 @@ func (s *SAMLIdPServiceProviderService) CreateSAMLIdPServiceProvider(ctx context
|
||||
"acs_url", sp.GetACSURL(),
|
||||
"error", err,
|
||||
)
|
||||
return trace.BadParameter(errMsg.Error())
|
||||
return trace.BadParameter("%s", errMsg)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1460,7 +1460,7 @@ func (s *IdentityService) getSSOMFADevice(ctx context.Context, user string) (*ty
|
||||
mfaConnector, err = s.GetOIDCConnector(ctx, cb.Connector.ID, false /* withSecrets */)
|
||||
case constants.Github:
|
||||
// Github connectors do not support SSO MFA.
|
||||
return nil, trace.NotFound(ssoMFADisabledErr)
|
||||
return nil, trace.NotFound("%s", ssoMFADisabledErr)
|
||||
default:
|
||||
return nil, trace.NotFound("user created by unknown auth connector type %v", cb.Connector.Type)
|
||||
}
|
||||
@@ -1473,7 +1473,7 @@ func (s *IdentityService) getSSOMFADevice(ctx context.Context, user string) (*ty
|
||||
}
|
||||
|
||||
if !mfaConnector.IsMFAEnabled() {
|
||||
return nil, trace.NotFound(ssoMFADisabledErr)
|
||||
return nil, trace.NotFound("%s", ssoMFADisabledErr)
|
||||
}
|
||||
|
||||
return types.NewMFADevice(mfaConnector.GetDisplay(), cb.Connector.ID, cb.Time.UTC(), &types.MFADevice_Sso{
|
||||
|
||||
@@ -36,7 +36,7 @@ func LockInForceAccessDenied(lock types.Lock) error {
|
||||
if len(msg) > 0 {
|
||||
s += ": " + msg
|
||||
}
|
||||
err := trace.AccessDenied(s)
|
||||
err := trace.AccessDenied("%s", s)
|
||||
return trace.WithField(err, "lock-in-force", lock)
|
||||
}
|
||||
|
||||
@@ -85,7 +85,7 @@ func UnmarshalLock(bytes []byte, opts ...MarshalOption) (types.Lock, error) {
|
||||
|
||||
var lock types.LockV2
|
||||
if err := utils.FastUnmarshal(bytes, &lock); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := lock.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -53,7 +53,7 @@ func UnmarshalNamespace(data []byte, opts ...MarshalOption) (*types.Namespace, e
|
||||
// the namespace is always created by teleport now
|
||||
var namespace types.Namespace
|
||||
if err := utils.FastUnmarshal(data, &namespace); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
|
||||
if err := namespace.CheckAndSetDefaults(); err != nil {
|
||||
|
||||
@@ -39,7 +39,7 @@ func UnmarshalClusterNetworkingConfig(bytes []byte, opts ...MarshalOption) (type
|
||||
}
|
||||
|
||||
if err := utils.FastUnmarshal(bytes, &netConfig); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
|
||||
err = netConfig.CheckAndSetDefaults()
|
||||
|
||||
@@ -89,7 +89,7 @@ func UnmarshalOIDCConnector(bytes []byte, opts ...MarshalOption) (types.OIDCConn
|
||||
case types.V2, types.V3:
|
||||
var c types.OIDCConnectorV3
|
||||
if err := utils.FastUnmarshal(bytes, &c); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := c.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -116,7 +116,7 @@ func UnmarshalOktaImportRule(data []byte, opts ...MarshalOption) (types.OktaImpo
|
||||
case types.V1:
|
||||
var i types.OktaImportRuleV1
|
||||
if err := utils.FastUnmarshal(data, &i); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := i.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
@@ -168,7 +168,7 @@ func UnmarshalOktaAssignment(data []byte, opts ...MarshalOption) (types.OktaAssi
|
||||
case types.V1:
|
||||
var a types.OktaAssignmentV1
|
||||
if err := utils.FastUnmarshal(data, &a); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := a.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -82,13 +82,13 @@ func UnmarshalPluginStaticCredentials(data []byte, opts ...MarshalOption) (types
|
||||
}
|
||||
h, err := unmarshalHeaderWithProtoJSON(data)
|
||||
if err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
switch h.Version {
|
||||
case types.V1:
|
||||
var pluginStaticCredentials types.PluginStaticCredentialsV1
|
||||
if err := protojson.Unmarshal(data, protoadapt.MessageV2Of(&pluginStaticCredentials)); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := pluginStaticCredentials.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -84,7 +84,7 @@ func UnmarshalPlugin(data []byte, opts ...MarshalOption) (types.Plugin, error) {
|
||||
var plugin types.PluginV1
|
||||
m := jsonpb.Unmarshaler{AllowUnknownFields: true}
|
||||
if err := m.Unmarshal(bytes.NewReader(data), &plugin); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := plugin.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -92,7 +92,7 @@ func UnmarshalProvisionToken(data []byte, opts ...MarshalOption) (types.Provisio
|
||||
case types.V2:
|
||||
var p types.ProvisionTokenV2
|
||||
if err := utils.FastUnmarshal(data, &p); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := p.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -61,7 +61,7 @@ func UnmarshalNetworkRestrictions(bytes []byte, opts ...MarshalOption) (types.Ne
|
||||
case types.V4:
|
||||
var nr types.NetworkRestrictionsV4
|
||||
if err := utils.FastUnmarshal(bytes, &nr); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := ValidateNetworkRestrictions(&nr); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -3551,7 +3551,7 @@ func UnmarshalRoleV6(bytes []byte, opts ...MarshalOption) (*types.RoleV6, error)
|
||||
|
||||
var role types.RoleV6
|
||||
if err := utils.FastUnmarshal(bytes, &role); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if role.Version != version {
|
||||
return nil, trace.BadParameter("inconsistent version in role data, got %q and %q", role.Version, version)
|
||||
|
||||
@@ -358,7 +358,7 @@ func UnmarshalSAMLConnector(bytes []byte, opts ...MarshalOption) (types.SAMLConn
|
||||
case types.V2:
|
||||
var c types.SAMLConnectorV2
|
||||
if err := utils.FastUnmarshal(bytes, &c); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
|
||||
if err := ValidateSAMLConnector(&c, nil); err != nil {
|
||||
|
||||
@@ -90,7 +90,7 @@ func UnmarshalSAMLIdPServiceProvider(data []byte, opts ...MarshalOption) (types.
|
||||
case types.V1:
|
||||
var s types.SAMLIdPServiceProviderV1
|
||||
if err := utils.FastUnmarshal(data, &s); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := s.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -121,7 +121,7 @@ func UnmarshalAuditQuery(data []byte, opts ...MarshalOption) (*secreports.AuditQ
|
||||
}
|
||||
var out *secreports.AuditQuery
|
||||
if err := utils.FastUnmarshal(data, &out); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := out.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
@@ -161,7 +161,7 @@ func UnmarshalSecurityReport(data []byte, opts ...MarshalOption) (*secreports.Re
|
||||
}
|
||||
var out *secreports.Report
|
||||
if err := utils.FastUnmarshal(data, &out); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := out.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
@@ -199,7 +199,7 @@ func UnmarshalSecurityReportState(data []byte, opts ...MarshalOption) (*secrepor
|
||||
}
|
||||
var out *secreports.ReportState
|
||||
if err := utils.FastUnmarshal(data, &out); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := out.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
@@ -237,7 +237,7 @@ func UnmarshalSecurityCostLimiter(data []byte, opts ...MarshalOption) (*secrepor
|
||||
}
|
||||
var out *secreports.CostLimiter
|
||||
if err := utils.FastUnmarshal(data, &out); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := out.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -380,7 +380,7 @@ func UnmarshalSemaphore(bytes []byte, opts ...MarshalOption) (types.Semaphore, e
|
||||
}
|
||||
|
||||
if err := utils.FastUnmarshal(bytes, &semaphore); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
|
||||
err = semaphore.CheckAndSetDefaults()
|
||||
|
||||
@@ -365,7 +365,7 @@ func UnmarshalServer(bytes []byte, kind string, opts ...MarshalOption) (types.Se
|
||||
|
||||
var s types.ServerV2
|
||||
if err := utils.FastUnmarshal(bytes, &s); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
s.Kind = kind
|
||||
if err := s.CheckAndSetDefaults(); err != nil {
|
||||
|
||||
@@ -39,7 +39,7 @@ func UnmarshalServerInfo(bytes []byte, opts ...MarshalOption) (types.ServerInfo,
|
||||
|
||||
var si types.ServerInfoV1
|
||||
if err := utils.FastUnmarshal(bytes, &si); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := si.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -48,7 +48,7 @@ func UnmarshalSessionRecordingConfig(bytes []byte, opts ...MarshalOption) (types
|
||||
return nil, trace.Wrap(err)
|
||||
}
|
||||
if err := utils.FastUnmarshal(bytes, &recConfig); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
|
||||
err = recConfig.CheckAndSetDefaults()
|
||||
|
||||
@@ -61,7 +61,7 @@ func UnmarshalSessionTracker(bytes []byte) (types.SessionTracker, error) {
|
||||
|
||||
var session types.SessionTrackerV1
|
||||
if err := utils.FastUnmarshal(bytes, &session); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
|
||||
if err := session.CheckAndSetDefaults(); err != nil {
|
||||
|
||||
@@ -39,7 +39,7 @@ func UnmarshalStaticTokens(bytes []byte, opts ...MarshalOption) (types.StaticTok
|
||||
}
|
||||
|
||||
if err := utils.FastUnmarshal(bytes, &staticTokens); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := staticTokens.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -157,7 +157,7 @@ func UnmarshalTrustedCluster(bytes []byte, opts ...MarshalOption) (types.Trusted
|
||||
}
|
||||
|
||||
if err := utils.FastUnmarshal(bytes, &trustedCluster); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
// DELETE IN(7.0)
|
||||
// temporarily allow to read trusted cluster with no role map
|
||||
|
||||
@@ -60,7 +60,7 @@ func UnmarshalReverseTunnel(bytes []byte, opts ...MarshalOption) (types.ReverseT
|
||||
case types.V2:
|
||||
var r types.ReverseTunnelV2
|
||||
if err := utils.FastUnmarshal(bytes, &r); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := ValidateReverseTunnel(&r); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
@@ -75,7 +75,7 @@ func UnmarshalTunnelConnection(data []byte, opts ...MarshalOption) (types.Tunnel
|
||||
var r types.TunnelConnectionV2
|
||||
|
||||
if err := utils.FastUnmarshal(data, &r); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
|
||||
if err := r.CheckAndSetDefaults(); err != nil {
|
||||
|
||||
@@ -38,7 +38,7 @@ func UnmarshalUIConfig(data []byte, opts ...MarshalOption) (types.UIConfig, erro
|
||||
|
||||
var uiconfig types.UIConfigV1
|
||||
if err := utils.FastUnmarshal(data, &uiconfig); err != nil {
|
||||
return nil, trace.BadParameter(err.Error())
|
||||
return nil, trace.BadParameter("%s", err)
|
||||
}
|
||||
if err := uiconfig.CheckAndSetDefaults(); err != nil {
|
||||
return nil, trace.Wrap(err)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user