аннулирование сессии по всему приложению в weblogic 11g - PullRequest
0 голосов
/ 14 октября 2010

Я новичок в weblogic и портирую через серию веб-приложений от jboss. У меня есть несколько войн, которые я развернул на одном сервере WebLogic. Все они настроены для проверки подлинности на основе форм при поддержке активного каталога.

Однако у меня проблемы с выходом из приложений. У меня есть одно из приложений, которое служит моим приложением для входа в систему, которое содержит актуальную форму login.jsp. Он также имеет сервлет выхода, который вызывает session.invalidate (). После этого я не могу получить доступ к защищенным страницам в основном приложении, но могу получить доступ к защищенным страницам в других приложениях.

Из того, что я читал, weblogic 11g совместно использует один и тот же сеанс для всех приложений, что имеет смысл в том, что я вижу. Я нахожу ссылки на использование следующего для аннулирования сеанса во всех приложениях:

invalidateAll(HttpServletRequest req)

в упаковке

weblogic.servlet.security.ServletAuthentication

Однако я не могу найти это или что-то подобное в WebLogic 11g. Где этот служебный класс или как мне это делать?

Спасибо

UPDATE:

Исходя из ответа Джозека, приведенного ниже, мне пришлось добавить в файл weblogic.xml следующее для всех приложений, которые я развертываю:

 <session-descriptor>
     <sharing-enabled>true</sharing-enabled>
 </session-descriptor>

Джар, который я искал, называется wls-api.jar, который содержит класс ServletAuthentication. Я использовал версию веб-логики на базе zip 10.3.3.0. Я нашел jar в установке сервера wlserver_10.3 как часть установки Weblogic Fusion. Я просто взял банку и добавил ее в наше хранилище Nexus Maven.

1 Ответ

2 голосов
/ 18 октября 2010

invalidateAll задокументировано как часть WLS 10.3 (он же 11g), поэтому он должен работать в вашем сервлете выхода. Вы пробовали и столкнулись с какой-либо ошибкой?

Он также имеет сервлет выхода из системы, который вызывает session.invalidate (). После называя это, я не могу получить доступ к страницы в основном приложении, но могут доступ к защищенным страницам в другом приложения

Это указывает на то, что сеансы не совместно используются веб-приложениями, что является поведением по умолчанию. Если сеансы были разделены, пользователь вышел бы из всех приложений. Чтобы сеансы были доступны для совместного использования, вам нужно установить sharing-enabled к истине

Как Состояние документов ,

По умолчанию веб-приложения не разделить ту же сессию. Если бы вы как веб-приложения, чтобы поделиться тот же сеанс, вы можете настроить дескриптор сессии в приложении уровень в weblogic-application.xml дескриптор развертывания. Чтобы включить веб приложения, чтобы поделиться тем же сеанс, установите общий доступ включен атрибут в дескрипторе сеанса истина в weblogic-application.xml дескриптор развертывания.

...