Как мне заставить выход работать на RubyCAS-Server?
-
09-06-2019 - |
Вопрос
Я установил и настроил RubyCAS-Server и RubyCAS-Client на своем компьютере.Вход в систему работает отлично, но когда я пытаюсь выйти из системы, я получаю это сообщение об ошибке от RubyCAS-сервера:
Camping Problem!
CASServer::Controllers::Logout.GET
ActiveRecord::StatementInvalid Mysql::Error: Unknown column 'username' in 'where clause': SELECT * FROM `casserver_pgt` WHERE (username = 'lgs') :
Я использую версию 0.6 драгоценного камня.Глядя на миграцию на RubyCAS-сервере, кажется, что в этой таблице вообще не должно быть столбца имени пользователя.
Кто-нибудь знает, почему это происходит и что я могу с этим поделать?
Решение
Кажется, в версии драгоценного камня 0.6 есть ошибка (возможно, совпадающая с изменением, внесенным в средства поиска в Rails 2.1), как подробно описано в этом билет об ошибке.А пока вы можете попробовать установка из дерева исходников.
Другие советы
В случае Ruby CAS существует два типа сеансов:
(1).Сеанс приложения.
(2).Сеанс единого входа (SSO).
вы можете использовать драгоценный камень sinatra-session для управления сеансом приложения и просто использовать сеанс_конец! вспомогательный метод для уничтожения сеанса приложения.Для уничтожения сеанса единого входа отключите сеанс[:cas_ticket] параметр в маршруте выхода из системы.
пример:
В случае с Синатрой: get '/logout' do
session_end! # provided by sinatra-session gem
session[:cas_ticket] = nil # session variable set by CAS server
end