Доступ к CVS через сервис Apache с использованием SSPI

Я использую сервер Apache (v2.2.10) с mod_python, Python 2.5 и Django. У меня есть небольшое веб-приложение, которое будет показывать текущие проекты, которые есть у нас в CVS, и позволит пользователям создавать сборки из разных проектов (сборка проверяет проект и копирует определенные файлы с удаленным исходным кодом).

На сервере Django dev все работает нормально. Я вижу список проектов в cvs, checkout и т. Д. На рабочем сервере (Apache) я получаю следующую ошибку:

[8009030d] Учетные данные, предоставленные для пакета, не были распознаны

Я пытаюсь войти на сервер CVS, используя SSPI. Ввод той же команды в оболочке будет выполняться правильно.

Это код, который я использую:


def __execute(self, command = ''):
        command = 'cvs.exe -d :sspi:user:password@cvs-serv.example.com:/Projects ls' 
        p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr = subprocess.STDOUT, shell=True)
        return p.communicate()

Я пробовал несколько разных вариантов вещей, и я не могу заставить его работать. Прямо сейчас я считаю, что виновником является Apache.

Любая помощь будет оценена

11.12.2008 21:05:20
1 ОТВЕТ
РЕШЕНИЕ

Использование SSPI заставляет меня думать, что вы используете CVSNT, то есть систему Windows; с каким пользователем вы запускаете Apache? Пользователь по умолчанию для сервисов - SYSTEM, который не использует тот же реестр, что и текущий пользователь.

0
11.12.2008 22:28:00
Ах да, я забыл упомянуть, что я был на Windows XP. Я пытался заставить Apache использовать логин компьютера, на котором он работал, что объясняет ошибку аутентификации SSPI. Я посмотрю, смогу ли я запустить службу под другим пользователем.
Alex Jillard 12.12.2008 14:41:53