Comment faire pour que la déconnexion fonctionne sur RubyCAS-Server?
-
09-06-2019 - |
Question
J'ai installé et installé RubyCAS-Server et RubyCAS-Client sur ma machine. La connexion fonctionne parfaitement, mais lorsque je tente de me déconnecter, le message d'erreur du serveur RubyCAS s'affiche:
Camping Problem!
CASServer::Controllers::Logout.GET
ActiveRecord::StatementInvalid Mysql::Error: Unknown column 'username' in 'where clause': SELECT * FROM `casserver_pgt` WHERE (username = 'lgs') :
J'utilise la version 0.6 de la gemme. En regardant les migrations dans RubyCAS-Server, il semble qu'il ne devrait pas y avoir de colonne de nom d'utilisateur dans cette table.
Quelqu'un sait-il pourquoi cela se produit et que puis-je faire à ce sujet?
La solution
Il semble y avoir un bogue dans la version 0.6 de la gem (coïncidant éventuellement avec une modification apportée aux chercheurs dans Rails 2.1), comme indiqué dans ce ticket de bogue . En attendant, vous pouvez essayer de installer à partir de l’arborescence du code source .
Autres conseils
Dans le cas du CAS ruby, il existe deux types de session:
(1). La session d'application.
(2). La session d'authentification unique (SSO).
vous pouvez utiliser le joyau sinatra-session pour gérer la session de l'application et utiliser simplement la méthode d'assistance session_end! pour détruire la session de l'application. Pour détruire la session SSO, désactivez le paramètre session [: cas_ticket] dans la route de déconnexion.
exemple:
En cas de Sinatra:
get '/ logout' do
session_end! # fourni par le joyau sinatra-session
session [: cas_ticket] = nil # variable de session définie par le serveur CAS
fin