Python ldap实现登录实例代码


Posted in Python onSeptember 30, 2016

下面一段代码是小编给大家介绍的Python ldap实现登录实例代码,一起看看吧

ldap_config = {
  'ldap_path': 'ldap://xx.xx.xx.xx:389',
  'base_dn': 'ou=users,dc=ledo,dc=com',
  'ldap_user': 'uid=reporttest,ou=users,dc=ledo,dc=com',
  'ldap_pass': '111111.0',
  'original_pass': '111111.0'
}
ldap_message = {
  0: 0, #'ok'
  1: 1, #'用户名或密码错误'
  2: 2, #ldap验证异常'
}
import ldap
import base64
import hashlib
from config_message import ldap_config, ldap_message
class LDAP_API(object):
  _ldap_path = ldap_config['ldap_path']
  _base_dn = ldap_config['base_dn']
  _ldap_user = ldap_config['ldap_user']
  _ldap_pass = ldap_config['ldap_pass']
  _original_pass = ldap_config['original_pass']
  # 连接ldap服务器
  def __init__(self):
    try:
      self.ldapconn = ldap.initialize(self._ldap_path)
      self.ldapconn.protocal_version = ldap.VERSION3
      self.ldapconn.simple_bind(self._ldap_user, self._ldap_pass)
    except ldap.LDAPError, e:
      print e
  # 验证用户登录
  def ldap_check_login(self, username, password):
    obj = self.ldapconn
    searchScope = ldap.SCOPE_SUBTREE
    # searchFilter = '(&(cn='+username+')(userPassword='+password+'))'
    searchFilter = 'uid=' + username
    try:
      obj.search(self._base_dn, searchScope, searchFilter, None) # id--2
      # 将上一步计算的id在下面运算
      result_type, result_data = obj.result(2, 0)
      if result_type != ldap.RES_SEARCH_ENTRY:
        return {'status': ldap_message[1], 'data': ''}
      dic = result_data[0][1]
      l_realname = dic['sn'][0]
      l_password = dic['userPassword'][0]
      md_password = LDAP_API.hash_md5(password)
      if l_password in (password, md_password):
        return {'status': ldap_message[0], 'data': l_realname}
      else:
        return {'status': ldap_message[1], 'data': ''}
    except ldap.LDAPError, e:
      return {'status': ldap_message[2], 'data': ''}
  @staticmethod
  def hash_md5(data):
    md = hashlib.md5()
    md.update(str(data))
    a = md.digest()
    b = '{MD5}' + base64.b64encode(a)
    return b
Python 相关文章推荐
Python实现LRU算法的2种方法
Jun 24 Python
Python实现基于PIL和tesseract的验证码识别功能示例
Jul 11 Python
Python3.5 处理文本txt,删除不需要的行方法
Dec 10 Python
python将txt文件读取为字典的示例
Dec 22 Python
Python实现的KMeans聚类算法实例分析
Dec 29 Python
详解爬虫被封的问题
Apr 23 Python
解决Python中回文数和质数的问题
Nov 24 Python
python GUI库图形界面开发之PyQt5信号与槽多窗口数据传递详细使用方法与实例
Mar 08 Python
如何在windows下安装Pycham2020软件(方法步骤详解)
May 03 Python
零基础学Python之前需要学c语言吗
Jul 21 Python
python爬取抖音视频的实例分析
Jan 19 Python
python数据分析之用sklearn预测糖尿病
Apr 22 Python
python之Socket网络编程详解
Sep 29 #Python
python 排序算法总结及实例详解
Sep 28 #Python
一些常用的Python爬虫技巧汇总
Sep 28 #Python
Python三级目录展示的实现方法
Sep 28 #Python
Python黑帽编程 3.4 跨越VLAN详解
Sep 28 #Python
python 采集中文乱码问题的完美解决方法
Sep 27 #Python
20招让你的Python飞起来!
Sep 27 #Python
You might like
全国FM电台频率大全 - 27 陕西省
2020/03/11 无线电
php下intval()和(int)转换使用与区别
2008/07/18 PHP
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
2009/06/08 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
php另类上传图片的方法(PHP用Socket上传图片)
2013/10/30 PHP
自己写的php中文截取函数mb_strlen和mb_substr
2015/02/09 PHP
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
2015/09/22 PHP
jquery 实现的全选和反选
2009/04/15 Javascript
深入理解JavaScript系列(13) This? Yes,this!
2012/01/18 Javascript
jquery实现不同大小浏览器使用不同的css样式表的方法
2014/04/02 Javascript
jQuery实现单击和鼠标感应事件
2015/02/01 Javascript
动态的9*9乘法表效果的实现代码
2016/05/16 Javascript
jQuery实现的纵向下拉菜单实例详解【附demo源码下载】
2016/07/09 Javascript
Bootstrap modal使用及点击外部不消失的解决方法
2016/12/13 Javascript
jQuery使用正则验证15/18身份证的方法示例
2017/04/27 jQuery
纯js实现的积木(div层)拖动功能示例
2017/07/19 Javascript
利用three.js画一个3D立体的正方体示例代码
2017/11/19 Javascript
了解在JavaScript中将值转换为字符串的5种方法
2019/06/06 Javascript
vue实现中部导航栏布局功能
2019/07/30 Javascript
js实现课堂随机点名系统
2019/11/21 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
2019/12/09 Javascript
[02:44]DOTA2英雄基础教程 克林克兹
2014/01/15 DOTA
利用python微信库itchat实现微信自动回复功能
2017/05/18 Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
2017/11/21 Python
Python整数对象实现原理详解
2019/07/01 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
2019/12/18 Python
Python sqlite3查询操作过程解析
2020/02/20 Python
python logging.info在终端没输出的解决
2020/05/12 Python
python3让print输出不换行的方法
2020/08/24 Python
青年创业培训欢迎词
2014/01/08 职场文书
开工仪式主持词
2014/03/20 职场文书
群众路线个人对照检查材料
2014/09/23 职场文书
群众路线四风对照检查材料
2014/11/04 职场文书
2015元旦晚会主持词(开场白+结束语)
2014/12/14 职场文书
向女朋友道歉的话
2015/01/20 职场文书
一篇文章弄清楚Ajax请求的五个步骤
2022/03/17 Javascript