def change_password(tokenid, user, oldpasswd, newpasswd, ip, port, realm=""): user = user.encode('ascii','ignore') oldpasswd = oldpasswd.encode('ascii','ignore') newpasswd = newpasswd.encode('ascii','ignore') c = pycurl.Curl() content = StringIO.StringIO() if "" == realm: url = 'http://%s:%s/openam/json/users/%s?_action=changePassword' % (ip, port, user) else: url = 'http://%s:%s/openam/json/%s/users/%s?_action=changePassword' % (ip, port, realm, user) post_data_dict = {"currentpassword":oldpasswd,"userpassword":newpasswd} raws = RawSerialize() post_data_dict = raws.serialize(post_data_dict) c.setopt(pycurl.URL, url) c.setopt(pycurl.POST, 1) c.setopt(pycurl.POSTFIELDS, post_data_dict ) c.setopt(pycurl.HTTPHEADER,['iplanetDirectoryPro: %s'%tokenid,'Content-Type: application/json']) c.setopt(pycurl.WRITEFUNCTION, content.write) c.setopt(pycurl.CONNECTTIMEOUT, 30) c.setopt(pycurl.TIMEOUT, 30) ret = "" try: ret = c.perform() except Exception,e: logger.info(e) c.close() return ""
def verify_passwd(user, password, ip, port): user = user.encode('ascii', 'ignore') password = password.encode('ascii', 'ignore') realm_sep = '.' if realm_sep not in user: realm = "local" else: users = user.split(realm_sep) realm = users[0] users = users[1:] user = realm_sep.join(users) cont = authenticate(user, password, ip, port, realm) print cont #print user,password if 'tokenId' in cont: raws = RawSerialize() obj = raws.unserialize(cont) tokenid = obj['tokenId'] tokenid = tokenid.encode('ascii', 'ignore') cont = logout(tokenid, ip, port, realm) print cont return (True, '') if 'Invalid Password' in cont: return (False, 'InvalidPassword') elif 'Authentication Failed' in cont: return (False, 'InvalidCredentials') else: return (False, 'Invalid')
def change_password(tokenid, user, oldpasswd, newpasswd, ip, port, realm=""): user = user.encode('ascii', 'ignore') oldpasswd = oldpasswd.encode('ascii', 'ignore') newpasswd = newpasswd.encode('ascii', 'ignore') c = pycurl.Curl() content = StringIO.StringIO() if "" == realm: url = 'http://%s:%s/openam/json/users/%s?_action=changePassword' % ( ip, port, user) else: url = 'http://%s:%s/openam/json/%s/users/%s?_action=changePassword' % ( ip, port, realm, user) post_data_dict = {"currentpassword": oldpasswd, "userpassword": newpasswd} raws = RawSerialize() post_data_dict = raws.serialize(post_data_dict) c.setopt(pycurl.URL, url) c.setopt(pycurl.POST, 1) c.setopt(pycurl.POSTFIELDS, post_data_dict) c.setopt(pycurl.HTTPHEADER, [ 'iplanetDirectoryPro: %s' % tokenid, 'Content-Type: application/json' ]) c.setopt(pycurl.WRITEFUNCTION, content.write) c.setopt(pycurl.CONNECTTIMEOUT, 30) c.setopt(pycurl.TIMEOUT, 30) ret = "" try: ret = c.perform() except Exception, e: logger.info(e) c.close() return ""
def change_passwd(user, oldpassword, newpassword, ip, port): user = user.encode('ascii','ignore') realm_sep = '.' if realm_sep not in user: realm = "local" else: users = user.split(realm_sep) realm = users[0] users = users[1:] user = realm_sep.join(users) oldpassword = oldpassword.encode('ascii','ignore') newpassword = newpassword.encode('ascii','ignore') cont = authenticate(user, oldpassword, ip, port, realm) print cont if 'tokenId' in cont: raws = RawSerialize() obj = raws.unserialize(cont) tokenid = obj['tokenId'] tokenid = tokenid.encode('ascii', 'ignore') cont = change_password(tokenid, user, oldpassword, newpassword, ip, port,realm) print cont cont_logout = logout(tokenid, ip, port, realm) print cont_logout if '{}' == cont: return (True,"") obj = raws.unserialize(cont) return (False,obj['message']) raws = RawSerialize() obj = raws.unserialize(cont) return (False,obj['message'])
def verify_passwd(user, password, ip, port): user = user.encode('ascii','ignore') password = password.encode('ascii','ignore') realm_sep = '.' if realm_sep not in user: realm = "local" else: users = user.split(realm_sep) realm = users[0] users = users[1:] user = realm_sep.join(users) cont = authenticate(user, password, ip, port, realm) print cont #print user,password if 'tokenId' in cont: raws = RawSerialize() obj = raws.unserialize(cont) tokenid = obj['tokenId'] tokenid = tokenid.encode('ascii', 'ignore') cont = logout(tokenid, ip, port, realm) print cont return (True,'') if 'Invalid Password' in cont: return (False,'InvalidPassword') elif 'Authentication Failed' in cont: return (False,'InvalidCredentials') else: return (False,'Invalid')
def change_passwd(user, oldpassword, newpassword, ip, port): user = user.encode('ascii', 'ignore') realm_sep = '.' if realm_sep not in user: realm = "local" else: users = user.split(realm_sep) realm = users[0] users = users[1:] user = realm_sep.join(users) oldpassword = oldpassword.encode('ascii', 'ignore') newpassword = newpassword.encode('ascii', 'ignore') cont = authenticate(user, oldpassword, ip, port, realm) print cont if 'tokenId' in cont: raws = RawSerialize() obj = raws.unserialize(cont) tokenid = obj['tokenId'] tokenid = tokenid.encode('ascii', 'ignore') cont = change_password(tokenid, user, oldpassword, newpassword, ip, port, realm) print cont cont_logout = logout(tokenid, ip, port, realm) print cont_logout if '{}' == cont: return (True, "") obj = raws.unserialize(cont) return (False, obj['message']) raws = RawSerialize() obj = raws.unserialize(cont) return (False, obj['message'])
def get_realm_user_list(realm, ip, port): err = False ret = [] cont = authenticate('amAdmin', 'zx123456', ip, port) logger.info("authenticate:%s", cont) if 'tokenId' in cont: raws = RawSerialize() obj = raws.unserialize(cont) tokenid = obj['tokenId'] tokenid = tokenid.encode('ascii', 'ignore') cont = get_user_list(tokenid, ip, port, realm) logger.info("realm:%s,get_user_list:%s", realm, cont) obj = raws.unserialize(cont) if 'result' in obj: ret = obj['result'] err = True cont = logout(tokenid, ip, port) logger.info("logout:%s", cont) return (err, ret)
def get_realm_user_list(realm, ip, port): err = False ret = [] cont = authenticate('amAdmin', 'zx123456', ip, port) logger.info("authenticate:%s", cont) if 'tokenId' in cont: raws = RawSerialize() obj = raws.unserialize(cont) tokenid = obj['tokenId'] tokenid = tokenid.encode('ascii', 'ignore') cont = get_user_list(tokenid, ip, port, realm) logger.info("realm:%s,get_user_list:%s", realm, cont) obj = raws.unserialize(cont) if 'result' in obj: ret = obj['result'] err = True cont = logout(tokenid, ip, port) logger.info("logout:%s", cont) return (err,ret)