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+,目录下的 ...
随机推荐
- extjs如何使用
刚学ExtJs 不知道如何使用.. 我的操作步骤如下: 1. 在项目中导入ExtJs 2. 创建了一个one.js 和 helloworld.html 3. one.js中的代码如下: Ext.Mes ...
- php-fpm安装、配置与优化
转载自:https://www.zybuluo.com/phper/note/89081 1.php中fastcgi和php-fpm是什么东西 最近在研究和学习PHP的性能方面的知识,看到了factc ...
- Apache和nginx 域名配置
apache配置 一.hosts配置: 1.用编辑器打开hosts文件,位置:C:\Windows\System32\drivers\etc目录下 2.在hosts文件里添加自己的域名配置,配置规则如 ...
- SPRING 集成 activemq 的 topic 模式
概要 activemq 支持两种模式: 1.队列模式 2. 发布订阅者模式,topic有一个主题可以有多个订阅者.这种情况可以将一个消息,分发到多个消费者. 比如我有这样一个案例,用户需要同步,而且需 ...
- Basic Router Architecture
from the book principles and practices of interconnection networks the chapter router architecture ...
- C语言三种方法调用数组
#include <stdio.h> /********************************* * 方法1: 第一维的长度可以不指定 * * 但必须指定第二维的长度 * *** ...
- fPLL结构及动态配置
输入参考时钟 从上图可以看到参考时钟输入的几种类型. 注意:fPLL的校正是由CLKUSR来驱动的,这个时钟必须要保持稳定. 参考时钟利用器 N计数器 N计数器会把参考时钟利用器输出进行分 ...
- Linux下VNC配置使用总结:开启+桌面配置+安全访问
操作环境:CentOS 5.3 + Windows XP SP3 32bit + RealVNC 4.1.2 i386 + TigerVNC. 参考:潇湘隐者-Linux系统VNC配置实践总结,萨米的 ...
- Oracle 数据库 dbConsole 配置笔记
Oracle安装后,DBConsole有时安装会失败,这时可以通过以下命令恢复: set oracle_sid=orclemca -repos recreateemca -config dbcontr ...
- ADALINE小demo
线性逼近 clear;clc;close all x = [1,0.5; 1.5,1.1; 3,3; -1.2,-1]; y = x(:,2); x = [ones(size(x,1),1),x(:, ...