falcon适配ldap密码同步
问题
小米的openfalcon在使用ldap首次登陆成功后,会在本地创建同名的账号, 这就有个问题当你更新了ldap的密码时,openfalcon是没有同步本地账号密码的功能
二次改造
方便我们debug, 先把日志的debug打开,默认是没有运行时日志的,只有console日志
# 编辑文件 dashboard/rrd/utils/logger.pyimportsysfrom rrdimportconfigimportloggingfile_handler = logging.FileHandler(filename='/data1/dev/open-falcon/dashboard/var/running.log')formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')file_handler.setFormatter(formatter)logging.getLogger().addHandler(file_handler)logging.getLogger().setLevel(logging.DEBUG)添加两个util方法 dashboard/rrd/view/utils.py
def get_Apitoken(name, password):d = {"name": name,"password": password}h = {"Content-type":"application/json"}r = requests.post("%s/user/login"%(config.API_ADDR,), \data=json.dumps(d), headers=h)ifr.status_code !=200:raise Exception("%s %s"%(r.status_code, r.text))sig = json.loads(r.text)["sig"]returnjson.dumps({"name":name,"sig":sig})def get_user_id(name, Apitoken):h = {"Content-type":"application/json","Apitoken":Apitoken}r = requests.get("%s/user/name/%s"%(config.API_ADDR,name), headers=h)ifr.status_code !=200:user_id = -1returnuser_iduser_id = json.loads(r.text)["id"]returnuser_id重构登陆函数
diff --git a/rrd/view/auth/auth.py b/rrd/view/auth/auth.pyindex c203c4c..a546b95100644--- a/rrd/view/auth/auth.py+++ b/rrd/view/auth/auth.py@@ -17,6+17,7@@from flaskimportrequest, g, abort, render_template, redirectfrom flask.ext.babelimportrefreshimportrequests+importtracebackimportjsonfrom rrdimportappfrom rrdimportconfig@@ -48,6+49,7@@ def auth_login():ifldap =="1":try:ldap_info = view_utils.ldap_login_user(name, password)+ log.debug("ldap_info: %s"%ldap_info)h = {"Content-type":"application/json"}d = {@@ -58,12+60,20@@ def auth_login():"phone": ldap_info['phone'],}- r = requests.post("%s/user/create"%(config.API_ADDR,), \+ Apitoken = view_utils.get_Apitoken('admin','admin_password')+ user_id = view_utils.get_user_id(name, Apitoken)+ log.debug('apitoken:%s, user_id:%s'%(Apitoken, user_id))++ifuser_id >0:+ r = requests.put("%s/admin/change_user_passwd"%(config.API_ADDR), data=json.dumps({"user_id":user_id,"passwor+ log.debug('ldap login success and synchronize user password')+else:+ r = requests.post("%s/user/create"%(config.API_ADDR,), \data=json.dumps(d), headers=h)- log.debug("%s:%s"%(r.status_code, r.text))+ log.debug("create user status %s:%s"%(r.status_code, r.text))- #TODO: update password in dbifldap password changedexcept Exception as e:+ log.debug(traceback.format_exc())ret["msg"] = str(e)returnjson.dumps(ret)完
falcon适配ldap密码同步的更多相关文章
- 记一次LDAP主从同步配置
LDAP主从同步 OpenLDAP在2.3版本之前的同步复制带有一系列缺点如只支持一主多从模式等,在此缺点就不多说,下文着重介绍一下OpenLDAP V2.4以后的同步负复制功能 同步功能 2.4版最 ...
- Azure Active Directory Connect密码同步问题
这几天一直在弄O365与本地域账号的密码同步问题.由于微软即将用Azure Active Directory Connect(以下简称AADC)这个同步工具替代之前的DirSync,所以我也研究了下这 ...
- 如何将多个 Apple 设备中保存在 iCloud 里面密码同步
如何将多个 Apple 设备中保存在 iCloud 里面密码同步 iCloud 钥匙串 密码同步 数据迁移 iOS iCloud 钥匙串会记住一些信息,因此您就无需记忆这些信息. 它会在您批准的任何设 ...
- 通过PowerShell启用AADC的密码同步功能
在AADC工具里面也可以启用. 下面这个是世纪互联工程师提供的Powershell脚本(我测试了下是可以的),其中,$adConnector和$aadConnector可以在AADC工具里面找到. $ ...
- 19 Go的全能ORM简单入门
gorm 昨天我的ldap账户改了以后,openfalcon(v2.1)-dashboard竟然无法登陆了!显然,没有把我的密码同步到本地数据库里面,怎么办?只能改openfalcon用户认证的源码了 ...
- 实验记录贴 —— 账号同步实验 RTX 和 LDAP(AD域)
目前,公司有多个系统,RTX,邮箱(MD),OA,NC. 这些系统之间,如果要实现单点登录的话,账户肯定需要同步,或者某一种映射机制. 如果所有数据都和中央账号数据库(LDAP,这里是AD域)看齐,那 ...
- [原创]django+ldap实现统一认证部分一(django-auth-ldap实践)
前言 接之前我的文章,django+ldap+memcache实现单点登录+统一认证 ,ldap部署相关,ldap双机\LAM配置管理\ldap备份还原,目前来说,我们已经有了高可用性的ldap环境了 ...
- 07: Django 使用ldap登录、注销等
目录:Django其他篇 01:Django基础篇 02:Django进阶篇 03:Django数据库操作--->Model 04: Form 验证用户数据 & 生成html 05:Mo ...
- lsyncd 实时同步
1. 几大实时同步工具比较 1.1 inotify + rsync 最近一直在寻求生产服务服务器上的同步替代方案,原先使用的是inotify + rsync,但随着文件数量的增大到100W+,目录下的 ...
随机推荐
- Java第2章笔记
1.什么是变量:在程序运行过程中它的值是允许改变的量 2.java中常用的数据类型分为四类八种 第一类:整型 int(整数类型) byte(字节类型) short(短整形) ...
- 使用delphi 10.2 开发linux 上的webservice
前几天做了linux下apache的开发,今天做一个linux 下的webservice ,以供客户端调用. 闲话少说,直接干. 新建一个工程.选other...,选择如图. 继续输入服务名 然后就生 ...
- fabric 安装
fabric 是一个python的库,fabric可以通过ssh批量管理服务器. 第一步安装依赖包 安装fabric依赖及pip yum install -y python-pip gcc pytho ...
- 2019.02.07 bzoj4316: 小C的独立集(仙人掌+树形dp)
传送门 题意:给出一个仙人掌森林求其最大独立集. 思路:如果没有环可以用经典的树形dpdpdp解决. fi,0/1f_{i,0/1}fi,0/1表示第iii个点不选/选的最大独立集. 然后fi,0+ ...
- 2019.01.14 codeforces685B. Kay and Snowflake(树形dp)
传送门 题意简述:给出一棵树,求每个子树的重心. 首先通过画图可以观察出一个性质,我们从叶子结点向根节点递推重心的话重心的位置是不会下降的. 然后由于一个点的重心要么是自己,要么在重儿子子树内,因此如 ...
- 2018.12.31 bzoj3771: Triple(生成函数+fft+容斥原理)
传送门 生成函数经典题. 题意简述:给出nnn个数,可以从中选1/2/31/2/31/2/3个,问所有可能的和对应的方案数. 思路: 令A(x),B(x),C(x)A(x),B(x),C(x)A(x) ...
- ac自动机板子
hdu2222 #include<bits/stdc++.h> #define ll long long #define M 500005 using namespace std; int ...
- Win7 VS2015环境编译cegui-0.8.5
首先是去官网下载源码与依赖库 http://cegui.org.uk/ 然后得提一下,编译DX11版本带Effects11框架的话会有问题,也就是默认情况编译有问题,这是因为VS2015升级后编译器对 ...
- boost-字符编码转换:使用conv
Windows下的字符集转换可以使用WideCharToMultiByte/ MultiByteToWideChar,Linux下字符集转换可以使用iconv()函数,下面为使用boost的conv来 ...
- s4-3 CSMA
载波侦听多路访问协议 CSMA:Carrier Sense Multiple Access 特点:"先听后发" 改进ALOHA协议的侦听/发送策略 分类 非持续式 持 ...