Como faço para que o logout funcione no RubyCAS-Server?
-
09-06-2019 - |
Pergunta
Instalei e configurei RubyCAS-Server e RubyCAS-Client em minha máquina.O login funciona perfeitamente, mas quando tento sair, recebo esta mensagem de erro do RubyCAS-Server:
Camping Problem!
CASServer::Controllers::Logout.GET
ActiveRecord::StatementInvalid Mysql::Error: Unknown column 'username' in 'where clause': SELECT * FROM `casserver_pgt` WHERE (username = 'lgs') :
Estou usando a versão 0.6 do gem.Olhando para as migrações no RubyCAS-Server, parece que não deveria haver uma coluna de nome de usuário nessa tabela.
Alguém sabe por que isso está acontecendo e o que posso fazer a respeito?
Solução
Parece que há um bug na versão 0.6 da gem (possivelmente coincidindo com a alteração feita nos localizadores no Rails 2.1), conforme detalhado neste bilhete de bug.Enquanto isso, você poderia tentar instalando a partir da árvore de origem.
Outras dicas
No caso do Ruby CAS existem dois tipos de sessão:
(1).A sessão do aplicativo.
(2).A sessão de logon único (SSO).
você pode usar a gem sinatra-session para gerenciar a sessão do aplicativo e apenas usar fim_da_sessão! método auxiliar para destruir a sessão do aplicativo.Para destruir a sessão SSO, desative o sessão[:cas_ticket] parâmetro na rota de logout.
exemplo:
No caso do Sinatra: get '/logout' do
session_end! # provided by sinatra-session gem
session[:cas_ticket] = nil # session variable set by CAS server
end