我正在将Django项目从RHEL5移植到RHEL7,将python 2.5移植到2.7.5,并且遇到证书问题。我要解决的代码部分是对Web服务WSDL client = Client(_LDAP_URLS[env])
的suds客户端调用,其中LDAP_URLS已在代码中定义。我使用from suds.client import Client
我认为这可能更多是两个版本之间的Linux和Python交互问题,而不是代码问题,但我可能是错的。这是完整的代码。 (顺便说一下,这是django,所以这是一个view.py文件)
from django.conf import settings
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect, HttpResponse
from django.shortcuts import render_to_response
from suds.client import Client
from suds.wsse import Security
import suds
from gaic.security.sso import BinarySecurityToken
from ud_data_extract import UDDataExtractForm
_LDAP_URLS = {WSDL URLS HARD CODED HERE}
def _get_person(env='production', hid=None, vid=None, token=None, group=None):
if env not in _LDAP_URLS:
env = 'production'
if token:
client = Client(_SSO_URLS[env])
try:
person = client.service.getPersonFromToken(token)
hid = person['hid']
except Exception:
return None
try:
client = Client(_LDAP_URLS[env])
except Exception as e:
log.error("line 165: %s", e)
if group:
grp = client.factory.create('groupDto')
grp.name = group
users = client.service.getGroupMembers(grp)
groups = []
try:
group_ = client.service.getGroup(grp)
gnamere = re.compile(r'cn=([^,]+),')
for gname in group_.uniqueMembers:
m = gnamere.match(gname)
if m:
group_name = m.groups(1)[0]
groups.append(group_name)
groups.sort()
except Exception, e:
pass # groups = [str(e)]
return [users, groups]
person = client.factory.create('personDto')
if hid:
person.hid = hid
if vid:
person.vid = vid
user = None
我的日志记录中的问题指向第165行左右,我用我们公司的wsdl url取出了一些代码,所以可能在150年代。在try语句中。
try:
client = Client(_LDAP_URLS[env])
except Exception as e:
log.error("line 165: %s", e)
我环顾四周,this page表示使用较新版本的python可能会出现问题,并指出this redhat documentation对其进行修复,但我真的不知道该如何处理。
预先感谢您的帮助。