X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FNBI.git;a=blobdiff_plain;f=osm_nbi%2Fauthconn_internal.py;h=88b276d73c70d9d09cd52be7f5f45e0430462b23;hp=672892d8ab698c58e9fda9d8526497407de97844;hb=f5f2e3f9cecc38647a437af7812323a1da7d3f60;hpb=ad682a52ef94fa2662e2a0f6e3f81fb7c8f5e0fe diff --git a/osm_nbi/authconn_internal.py b/osm_nbi/authconn_internal.py index 672892d..88b276d 100644 --- a/osm_nbi/authconn_internal.py +++ b/osm_nbi/authconn_internal.py @@ -46,8 +46,8 @@ class AuthconnInternal(Authconn): token_time_window = 2 # seconds token_delay = 1 # seconds to wait upon second request within time window - def __init__(self, config, db): - Authconn.__init__(self, config, db) + def __init__(self, config, db, role_permissions): + Authconn.__init__(self, config, db, role_permissions) self.logger = logging.getLogger("nbi.authenticator.internal") self.db = db @@ -118,15 +118,16 @@ class AuthconnInternal(Authconn): self.logger.exception(exmsg) raise AuthException(exmsg, http_code=HTTPStatus.UNAUTHORIZED) - def authenticate(self, user, password, project=None, token_info=None): + def authenticate(self, credentials, token_info=None): """ Authenticate a user using username/password or previous token_info plus project; its creates a new token - :param user: user: name, id or None - :param password: password or None - :param project: name, id, or None. If None first found project will be used to get an scope token + :param credentials: dictionary that contains: + username: name, id or None + password: password or None + project_id: name, id, or None. If None first found project will be used to get an scope token + other items are allowed and ignored :param token_info: previous token_info to obtain authorization - :param remote: remote host information :return: the scoped token info or raises an exception. The token is a dictionary with: _id: token string id, username: username, @@ -137,6 +138,9 @@ class AuthconnInternal(Authconn): now = time() user_content = None + user = credentials.get("username") + password = credentials.get("password") + project = credentials.get("project_id") # Try using username/password if user: