Аннулирование сеанса в портлете на основе Struts на портале Jboss - PullRequest
2 голосов
/ 06 декабря 2011

Я работаю над веб-приложением Portal, которое было разработано с помощью портлетов Struts на портале JBoss. Используется Struts-Portlet-Bridge.

Я пытался добавить код для аннулирования сеанса до того, как пользователю будет представлена ​​страница входа, но во время session.invalidate() возникают исключения. Затем я посмотрел на функциональность выхода из системы, и, очевидно, тот, кто написал код, не выполняет session.invalidate(), и я думаю, по тем же причинам, с которыми я столкнулся.

Затем я гуглил для "Моста портлета Struts" и нашел эту ссылку (http://docs.oracle.com/cd/E19583-01/819-4605/gblnb/index.html), которая говорит:

Если какое-либо приложение Struts, развернутое как портлет, делает недействительным сеанс с помощью> session.invalidate (), сеанс, полученный мостом Struts-Portlet, становится> недействительным. Из-за этого мост не может хранить связанную с рендерингом информацию. На сервере приложений приложение Struts, развернутое как портлет, не должно> использовать session.invalidate (), так как тот же сеанс используется мостом портлета Struts.

У кого-нибудь есть решение для этого? Как я могу сделать недействительным сеанс без использования session.invalidate() в методе действия Struts.

1 Ответ

0 голосов
/ 22 сентября 2012

Я помню, что мы столкнулись с этой проблемой с JBoss EPP v5.1. Мы обнаружили, что сеансы портлета не становятся недействительными при щелчке выхода из системы, и когда пользователь вошел в систему, он мог видеть старые данные (сохраненные в сеансе портлета во время предыдущего входа в систему) , Кроме того, эта проблема была исправлена ​​в выпуске JEPP v5.2, и мы теперь успешно перенесены на него.

...