Удалить файлы cookie в адаптере Worklight: несколько сеансов с использованием аутентификации на основе одного и того же адаптера

Я использую адаптеры Worklight и адаптер на основе аутентификации, которые проверяют учетные данные через сторонний веб-сервис (сервер Grails).

При тестировании с одним пользователем все было в порядке, но как только я начал использовать учетные записи нескольких пользователей, я обнаружил, что все пользователи подключаются к одному и тому же сеансу с одним и тем же Cookie JSESSIONID.

Я думаю, что адаптер Worklight добавляет файлы cookie из предыдущих запросов, и это эквивалентно подключению браузера к разным учетным записям без удаления старых файлов cookie / выхода из системы.

При отладке я вижу, что у меня в заголовках ответа на запрос аутентификации при входе первого пользователя:

"Set-Cookie":"JSESSIONID=63850CB333E7C279DC6D5B1D973B21E7; Path=/"

и когда второй пользователь входит в систему, в ответе больше нет заголовка «Set-Cookie».

У кого-нибудь есть решение или обходные пути?

Как я могу заставить worklight удалить существующие файлы cookie при подключении к веб-серверу аутентификации?


person WiPhone    schedule 28.02.2013    source источник


Ответы (2)


В вашей процедуре адаптера вы должны добавить атрибут connectAs="endUser". Таким образом, каждый пользователь создаст уникальное соединение с серверной частью аутентификации, и у них не будет одного и того же идентификатора сеанса.

person Raanan Avidor    schedule 28.02.2013

Я принудительно выхожу из системы при закрытии окна. Что-то вроде этого:

function wlCommonInit() {

    window.onbeforeunload = function() {
        WL.Logger.debug("logging out");
        WL.Client.logout();
    };
}
person Bill Griffith    schedule 22.05.2013