Я портирую проект django с RHEL5 на RHEL7 и python 2.5 на 2.7.5, и у меня возникают проблемы с сертификатами.Часть кода, которую я устраняю, является вызовом suds Client веб-службы WSDL client = Client(_LDAP_URLS[env])
, где 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, я удалил некоторый код с URL-адресами нашей компании, поэтому он можетбыть в 150-х годах.Это в выражении try.
try:
client = Client(_LDAP_URLS[env])
except Exception as e:
log.error("line 165: %s", e)
Я осмотрелся и эта страница сказала, что это может быть проблемой с более новой версией python и указала на эту документацию redhat чтобы исправить это, но я действительно не знаю, что с этим делать.
Заранее спасибо за помощь.