54 lines
1.7 KiB
Python
54 lines
1.7 KiB
Python
"""
|
||
ldap信息填写
|
||
"""
|
||
from flask import Blueprint
|
||
from flask_restful import reqparse, Resource, Api
|
||
import sys
|
||
|
||
from units.json_response import JsonResponse
|
||
from units.ldap.ldap_consul import Ldap_Consul
|
||
|
||
sys.path.append("..")
|
||
from units import token_auth, consul_kv,myaes
|
||
from itsdangerous import TimedJSONWebSignatureSerializer
|
||
|
||
secret_key = consul_kv.get_value('ConsulManager/assets/secret/skey')['sk']
|
||
s = TimedJSONWebSignatureSerializer(secret_key,expires_in=28800)
|
||
|
||
blueprint = Blueprint('ldap',__name__)
|
||
api = Api(blueprint)
|
||
parser = reqparse.RequestParser()
|
||
|
||
parser.add_argument('ldap_url',type=str)
|
||
parser.add_argument('password',type=str)
|
||
parser.add_argument('port',type=str)
|
||
parser.add_argument('rule',type=str)
|
||
parser.add_argument('ldapusr',type=str)
|
||
parser.add_argument('allow',type=str)
|
||
|
||
|
||
class LdapView(Resource):
|
||
"""
|
||
封装了公共返回格式
|
||
{"code": code,"success": success, "message": msg, "data": data}
|
||
"""
|
||
decorators = [token_auth.auth.login_required]
|
||
def post(self,):
|
||
args = parser.parse_args()
|
||
Ldap_Consul.set_consul_args(**args)
|
||
return JsonResponse(data="", code=20000, success=True, msg="添加统一认证成功")
|
||
|
||
def get(self):
|
||
ldap_info = consul_kv.get_value('ConsulManager/ldap/report')
|
||
if ldap_info:
|
||
ldap_info["password"] = myaes.decrypt(ldap_info["password"])
|
||
else:
|
||
ldap_info = {'port': '389', 'allow': '*'}
|
||
return {'code': 20000, 'ldap_info': ldap_info}
|
||
|
||
def delete(self):
|
||
consul_kv.del_key('ConsulManager/ldap/report')
|
||
return {'code': 20000, 'data': 'DLAP登录配置已清除!'}
|
||
|
||
api.add_resource(LdapView, '/api/ldap/config')
|