Поддержка изменяемого домена единого входа в домене cookie-файлов сеанса JSESSIONID на Jetty - PullRequest
0 голосов
/ 06 июня 2009

Я пытаюсь поддерживать единый вход с помощью JETTY, и у нас есть 2 субдомена, на которых работают веб-серверы, которые будут поддерживать единый вход через Поддержка единого входа Jetty .

account.test.com app.test.com

У нас есть cookie-файл SSOSession, установленный на * .test.com, но для поддержки выхода из системы мне нужно убедиться, что на моем сервере Jetty, работающем на app.test.com, сброшен cookie-файл JSESSIONID.

В настоящее время я использую Jetty JAAS FormAuthenticator и переопределяющий SSORealm для поддержки проверки файла cookie SSOSession при вызове FormAuthenticator.

Я хочу, чтобы account.test.com позволял пользователям входить в систему, что приведет к аннулированию файла cookie JSESSIONID, используемого на app.test.com.

Одно из решений, которое я мог бы сделать, возможно, было бы более правильным, - это обнаружить изменение в файле cookie SSOSession и сделать недействительным JSESSIONID на моем сервере.

1 Ответ

0 голосов
/ 13 февраля 2010

Я ничего не знаю о Jetty или о том, как работают JSESSIONID, но похоже, что вы хотите связать валидность JSESSIONID с конкретным файлом cookie SSOSession.

Одна возможность - при создании нового сеанса на app.test.com, кроме нового JSESSIONID, установить новый cookie, скажем, SSOSig = MD5 (JSESSIONID + SSOSessionCookie + secret) в домене app.test.com.

Когда пользователь взаимодействует с app.test.com, сервер получит JSESSIONID, SSOSig и SSOSessionID. Если SSOSessionID изменился из-за входа на account.test.com, вы получите JSESSIONID, SSOSig и SSOSessionID '. Теперь ваша попытка проверить SSOSig потерпит неудачу, так как MD5 (JSESSIONID + SSOSessioID '+ secret)! = SSOSig, и в этот момент вы можете аннулировать JSESSIONID.

...