Return 401 for Login Errors (#2312)

Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
This commit is contained in:
Daniel Valdivia
2022-09-15 13:33:53 -07:00
committed by GitHub
parent 41671b4f25
commit 4ac6ecb558
3 changed files with 40 additions and 29 deletions

View File

@@ -29,7 +29,7 @@ jobs:
strategy:
matrix:
go-version: [ 1.18.x, 1.19.x ]
go-version: [ 1.18.x ]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
@@ -98,7 +98,7 @@ jobs:
strategy:
matrix:
go-version: [ 1.18.x, 1.19.x ]
go-version: [ 1.18.x ]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
@@ -224,10 +224,10 @@ jobs:
lint-job:
name: Checking Lint
runs-on: [self-hosted]
runs-on: [ self-hosted ]
strategy:
matrix:
go-version: [ 1.18.x, 1.19.x ]
go-version: [ 1.18.x ]
os: [ ubuntu-latest ]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
@@ -251,7 +251,7 @@ jobs:
runs-on: self-hosted
strategy:
matrix:
go-version: [ 1.18.x, 1.19.x ]
go-version: [ 1.18.x ]
os: [ ubuntu-latest ]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
@@ -300,7 +300,7 @@ jobs:
runs-on: self-hosted
strategy:
matrix:
go-version: [ 1.18.x, 1.19.x ]
go-version: [ 1.18.x ]
os: [ ubuntu-latest ]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
@@ -366,7 +366,7 @@ jobs:
runs-on: self-hosted
strategy:
matrix:
go-version: [ 1.18.x, 1.19.x ]
go-version: [ 1.18.x ]
os: [ ubuntu-latest ]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
@@ -404,7 +404,7 @@ jobs:
runs-on: [ self-hosted, vm-docker, xvfb-run ]
strategy:
matrix:
go-version: [ 1.18.x, 1.19.x ]
go-version: [ 1.18.x ]
os: [ ubuntu-latest ]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
@@ -501,7 +501,7 @@ jobs:
runs-on: [ self-hosted, vm-docker, xvfb-run ]
strategy:
matrix:
go-version: [ 1.18.x, 1.19.x ]
go-version: [ 1.18.x ]
os: [ ubuntu-latest ]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
@@ -591,7 +591,7 @@ jobs:
runs-on: [ self-hosted, vm-docker, xvfb-run ]
strategy:
matrix:
go-version: [ 1.18.x, 1.19.x ]
go-version: [ 1.18.x ]
os: [ ubuntu-latest ]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
@@ -683,7 +683,7 @@ jobs:
timeout-minutes: 5
strategy:
matrix:
go-version: [ 1.18.x, 1.19.x ]
go-version: [ 1.18.x ]
os: [ ubuntu-latest ]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
@@ -761,7 +761,7 @@ jobs:
runs-on: [ self-hosted, vm-docker, xvfb-run ]
strategy:
matrix:
go-version: [ 1.18.x, 1.19.x ]
go-version: [ 1.18.x ]
os: [ ubuntu-latest ]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
@@ -839,7 +839,7 @@ jobs:
runs-on: [ self-hosted, vm-docker, xvfb-run ]
strategy:
matrix:
go-version: [ 1.18.x, 1.19.x ]
go-version: [ 1.18.x ]
os: [ ubuntu-latest ]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
@@ -917,7 +917,7 @@ jobs:
runs-on: [ self-hosted, vm-docker, xvfb-run ]
strategy:
matrix:
go-version: [ 1.18.x, 1.19.x ]
go-version: [ 1.18.x ]
os: [ ubuntu-latest ]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
@@ -995,7 +995,7 @@ jobs:
runs-on: [ self-hosted, vm-docker, xvfb-run ]
strategy:
matrix:
go-version: [ 1.18.x, 1.19.x ]
go-version: [ 1.18.x ]
os: [ ubuntu-latest ]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
@@ -1073,7 +1073,7 @@ jobs:
runs-on: [ self-hosted, vm-docker, xvfb-run ]
strategy:
matrix:
go-version: [ 1.18.x, 1.19.x ]
go-version: [ 1.18.x ]
os: [ ubuntu-latest ]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
@@ -1257,7 +1257,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.18.x, 1.19.x ]
go-version: [ 1.18.x ]
os: [ ubuntu-latest ]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
@@ -1295,7 +1295,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.18.x, 1.19.x ]
go-version: [ 1.18.x ]
os: [ ubuntu-latest ]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
@@ -1333,7 +1333,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.18.x, 1.19.x ]
go-version: [ 1.18.x ]
os: [ ubuntu-latest ]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
@@ -1371,7 +1371,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.18.x, 1.19.x ]
go-version: [ 1.18.x ]
os: [ ubuntu-latest ]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
@@ -1409,7 +1409,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.18.x, 1.19.x ]
go-version: [ 1.18.x ]
os: [ ubuntu-latest ]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
@@ -1447,7 +1447,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.18.x, 1.19.x ]
go-version: [ 1.18.x ]
os: [ ubuntu-latest ]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
@@ -1485,7 +1485,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.18.x, 1.19.x ]
go-version: [ 1.18.x ]
os: [ ubuntu-latest ]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
@@ -1523,7 +1523,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.18.x, 1.19.x ]
go-version: [ 1.18.x ]
os: [ ubuntu-latest ]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
@@ -1569,7 +1569,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.18.x, 1.19.x ]
go-version: [ 1.18.x ]
os: [ ubuntu-latest ]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
@@ -1616,7 +1616,7 @@ jobs:
strategy:
matrix:
go-version: [ 1.18.x, 1.19.x ]
go-version: [ 1.18.x ]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
@@ -1728,7 +1728,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
go-version: [ 1.18.x, 1.19.x ]
go-version: [ 1.18.x ]
os: [ ubuntu-latest ]
steps:
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}

View File

@@ -81,6 +81,12 @@ func ErrorWithContext(ctx context.Context, err ...interface{}) *models.Error {
var exists bool
if len(err) > 0 {
if err1, exists = err[0].(error); exists {
var lastError error
if len(err) > 1 {
if err2, lastExists := err[1].(error); lastExists {
lastError = err2
}
}
if err1.Error() == ErrForbidden.Error() {
errorCode = 403
}
@@ -95,6 +101,11 @@ func ErrorWithContext(ctx context.Context, err ...interface{}) *models.Error {
errorCode = 401
errorMessage = ErrInvalidLogin.Error()
}
// If the last error is ErrInvalidLogin, this is a login failure
if errors.Is(lastError, ErrInvalidLogin) {
errorCode = 401
errorMessage = err1.Error()
}
if strings.Contains(err1.Error(), ErrLoginNotAllowed.Error()) {
errorCode = 400
errorMessage = ErrLoginNotAllowed.Error()

View File

@@ -96,11 +96,11 @@ func TestError(t *testing.T) {
}
tests = append(tests,
testError{
name: "passing multiple errors",
name: "passing multiple errors but ErrInvalidLogin is last",
args: args{
err: []interface{}{ErrDefault, ErrInvalidLogin},
},
want: &models.Error{Code: int32(500), Message: swag.String(ErrDefault.Error()), DetailedMessage: swag.String(ErrDefault.Error())},
want: &models.Error{Code: int32(401), Message: swag.String(ErrDefault.Error()), DetailedMessage: swag.String(ErrDefault.Error())},
})
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {