Trac Single Signon не работает, как указано в кулинарной книге - PullRequest
1 голос
/ 29 февраля 2012

Я использую Trac 0.12.3 в настройке нескольких проектов с Subversion и использую AccountManagerPlugin из транка. Индексная страница по умолчанию включает в себя все каталоги проектов, и нажатие на любую из них приводит меня на страницу trac для этого проекта. Когда я пытаюсь войти в систему, я успешно аутентифицируюсь, однако, чтобы войти в другой проект, я должен снова войти в систему. Я хотел использовать единый вход и следовал инструкциям, указанным в http://trac -hacks.org / wiki / CookBook / AccountManagerPluginConfiguration # SingleSignOn

Всегда просят войти в каждый проект.

Моя конфигурация apache:

<VirtualHost *:80>
  ServerName trac.myproject.com
  ServerAdmin your@email.com

  DocumentRoot /trac

  <Directory />
    Options FollowSymLinks
    AllowOverride None
  </Directory>
  <Directory />
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
  </Directory>

  ErrorLog /var/log/apache2/error.log
  LogLevel warn
  CustomLog /var/log/apache2/access.log combined
  ServerSignature On

<Location /svn>
   DAV svn
   SVNParentPath /svn

   AuthType Basic
   AuthName "Subversion Repository"
   AuthUserFile /etc/svnauth
   Require valid-user
   AuthzSVNAccessFile /etc/svnaccess
</Location>

<LocationMatch "/.+">
   SetHandler mod_python
   PythonHandler trac.web.modpython_frontend
   PythonOption TracEnvParentDir /trac/
   PythonOption TracUriRoot /
   #AuthType Basic
   #AuthName "Trac"
   #AuthUserFile /etc/svnauth
   #Require valid-user
</LocationMatch>

</VirtualHost>

Файл Trac.ini, из которого унаследованы все другие специфичные для проекта файлы trac.ini:

[trac]
trac_auth = /trac/cookie
trac_auth_session = /trac/session
#I have also tried setting it as trac_auth_cookie = /trac/cookie
[header_logo]
alt = Logo
height = -1
link = /
src = http://projects.hostgeyser.com/templates/frost/images/logo%20250%20x%2089_new.png
width = -1

[components]
acct_mgr.admin.* = enabled
acct_mgr.api.* = enabled
acct_mgr.db.sessionstore = enabled
acct_mgr.htfile.htdigeststore = disabled
acct_mgr.htfile.htpasswdstore = enabled
acct_mgr.http.httpauthstore = disabled
acct_mgr.notification.* = enabled
acct_mgr.pwhash.htdigesthashmethod = disabled
acct_mgr.pwhash.htpasswdhashmethod = disabled
acct_mgr.svnserve.* = enabled
acct_mgr.svnserve.svnservepasswordstore = disabled
acct_mgr.web_ui.* = enabled
trac.web.auth.loginmodule = disabled
acct_mgr.http.httpauthstore = enabled


[account-manager]
password_store = HtPasswdStore
htpasswd_hash_type = md5
htpasswd_file = /etc/svnauth

Ответы [ 2 ]

0 голосов
/ 09 октября 2013

Дважды сложно.Я просто постучал в те же оплошности.В документации (а также в ответе hasienda ) говорится о «базовом пути», который легко позволяет подумать о файловой системе (и что-то вроде файлов сессий, используемых сессиями PHP).Это ошибка номер один: это URL-путь к родительской среде trac. Так что, если ваши проекты trac используют что-то вроде http://www.example.org/trac/<project>, ваши настройки должны быть auth_cookie_path = /trac.

Вторая ловушка: старые куки остаются в браузере.Хотя я, наконец, настроил auth_cookie_path, как описано выше, я все еще не смог пройти аутентификацию.В моем банке было старое trac_auth печенье из одного проекта.После того, как я удалил этот, он начал работать как шарм!

0 голосов
/ 01 марта 2012

Вы не можете смешивать аутентификацию, как здесь:

  • Конфигурация Apache AuthType Basic
  • AccountManager LoginModule (включается acct_mgr.web_ui.* = enabled)

Выберите только один из них. Если вы хотите SSO от AcctMgr, тогда придерживайтесь auth_cookie_path = <all-env-common-basepath>. На вики-странице TracIni есть все действительные ключи конфигурации для вашего приложения Trac, которые зависят от среды Trac, в зависимости от включенных компонентов и установленных плагинов Trac.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...