Bonjour, J'ai mis en place une authentification sur le modèle de l'application "depot" du livre "Ruby on Rails" des éditions Eyrolles. Je l'ai modifiée pour m'authentifier sur un annuaire Active Directory en appliquant la procédure indiquée sur la page http://wiki.rubyonrails.com/rails/pages/ActiveDirectory L'authentification fonctionne quelques minutes puis ensuite la variable session[:user_id] n'est plus transmise entre les contrôleurs 'login' et 'admin'. Les logs m'indiquent pourtant que l'authentification a réussi sur l'AD. Le problème est le même sous Webrick (développement) et Apache/Mongrel (production). Malgré quelques lectures sur le web à ce sujet, je n'arrive pas à débloquer la situation. Je précise que je suis sous Debian Etch, ruby 1.8 et rails 1.2.3
on 11.03.2008 09:19
on 12.03.2008 17:58
Bonjour, > L'authentification fonctionne quelques minutes puis ensuite la variable > session[:user_id] n'est plus transmise entre les contrôleurs 'login' et > 'admin'. Les logs m'indiquent pourtant que l'authentification a réussi > sur l'AD. Le problème est le même sous Webrick (développement) et > Apache/Mongrel (production). Malgré quelques lectures sur le web à ce > sujet, je n'arrive pas à débloquer la situation. Pour débugger tu vas devoir tracer deux choses: - ce qu'il advient du cookie de session (par default il doit s'appeler _session_id ou un truc du genre - quel système tu utilises pour stocker les sessions et s'il persiste correctement. Comme tu es en rails 1.2.3 c'est Pstore par default = stockage en fichier dans RAILS_ROOT/tmp/sessions Si tu veux tracer plus facilement tu peux changer de systeme de stockage et utiliser ActiveSessionStore ou SqlSessionStore (plugin) Il n'y a pas de "transmission" de session entre controller, une session est lié à un cookie qui lui est lié à un navigateur point barre, quelque soit le controller, l'OS utilisé ou le serveur web A priori il y a de grande chance que ton problème soit coté navigateur, soit coté code, il est peut probable que tu nettoyes les fichiers de session sans le savoir puisque rails ne le fait pas tout seul