mirror of https://github.com/veops/cmdb.git
fix(api): CAS authentication
This commit is contained in:
parent
f1f86ce25a
commit
6eb8ae1dac
|
@ -11,6 +11,7 @@ from flask import session
|
||||||
from flask import url_for
|
from flask import url_for
|
||||||
from flask_login import login_user
|
from flask_login import login_user
|
||||||
from flask_login import logout_user
|
from flask_login import logout_user
|
||||||
|
from six.moves.urllib.parse import urlparse
|
||||||
from six.moves.urllib_request import urlopen
|
from six.moves.urllib_request import urlopen
|
||||||
|
|
||||||
from api.lib.common_setting.common_data import AuthenticateDataCRUD
|
from api.lib.common_setting.common_data import AuthenticateDataCRUD
|
||||||
|
@ -45,7 +46,11 @@ def login():
|
||||||
if request.values.get("next"):
|
if request.values.get("next"):
|
||||||
session["next"] = request.values.get("next")
|
session["next"] = request.values.get("next")
|
||||||
|
|
||||||
_service = url_for('cas.login', _external=True)
|
# _service = url_for('cas.login', _external=True)
|
||||||
|
_service = "{}://{}{}".format(urlparse(request.referrer).scheme,
|
||||||
|
urlparse(request.referrer).netloc,
|
||||||
|
url_for('cas.login'))
|
||||||
|
|
||||||
redirect_url = create_cas_login_url(
|
redirect_url = create_cas_login_url(
|
||||||
config['cas_server'],
|
config['cas_server'],
|
||||||
config['cas_login_route'],
|
config['cas_login_route'],
|
||||||
|
@ -161,6 +166,9 @@ def validate(ticket):
|
||||||
v = soup.find(cas_user_map[k]['tag'], cas_user_map[k].get('attrs', {}))
|
v = soup.find(cas_user_map[k]['tag'], cas_user_map[k].get('attrs', {}))
|
||||||
user_dict[k] = v and v.text or None
|
user_dict[k] = v and v.text or None
|
||||||
user_dict['password'] = uuid.uuid4().hex
|
user_dict['password'] = uuid.uuid4().hex
|
||||||
|
if "email" not in user_dict:
|
||||||
|
user_dict['email'] = username
|
||||||
|
|
||||||
UserCRUD.add(**user_dict)
|
UserCRUD.add(**user_dict)
|
||||||
|
|
||||||
from api.lib.perm.acl.acl import ACLManager
|
from api.lib.perm.acl.acl import ACLManager
|
||||||
|
|
Loading…
Reference in New Issue