mgr/dashboard: Login failure should return HTTP 400

Signed-off-by: Ricardo Marques <rimarques@suse.com>
This commit is contained in:
Ricardo Marques 2018-06-04 21:26:44 +01:00
parent 7b3a7306b6
commit 091e01ca71
3 changed files with 11 additions and 4 deletions

View File

@ -47,8 +47,12 @@ class AuthTest(DashboardTestCase):
def test_login_invalid(self):
self._post("/api/auth", {'username': 'admin', 'password': 'inval'})
self.assertStatus(403)
self.assertJsonBody({"detail": "Invalid credentials"})
self.assertStatus(400)
self.assertJsonBody({
"component": "auth",
"code": "invalid_credentials",
"detail": "Invalid credentials"
})
def test_logout(self):
self._post("/api/auth", {'username': 'admin', 'password': 'admin'})

View File

@ -8,6 +8,7 @@ import cherrypy
from . import ApiController, RESTController
from .. import logger, mgr
from ..exceptions import DashboardException
from ..tools import Session
@ -40,13 +41,14 @@ class Auth(RESTController):
logger.debug('Login successful')
return {'username': username}
cherrypy.response.status = 403
if config_username is None:
logger.warning('No Credentials configured. Need to call `ceph dashboard '
'set-login-credentials <username> <password>` first.')
else:
logger.debug('Login failed')
return {'detail': 'Invalid credentials'}
raise DashboardException(msg='Invalid credentials',
code='invalid_credentials',
component='auth')
def bulk_delete(self):
logger.debug('Logout successful')

View File

@ -1,4 +1,5 @@
export enum Components {
auth = 'Login',
cephfs = 'CephFS',
rbd = 'RBD',
pool = 'Pool',