2013-12-13 1 views
0

Наше приложение разработано на Liferay с несколькими портлетами Spring MVC на странице. Его одностраничное приложение, и навигация происходит только внутри портлетов. Иногда иногда, когда сеанс Liferay заканчивается, и я посылаю запрос в элемент управления для нового представления, в портлете отображается страница входа в систему liferay. Но ожидаемое поведение заключается в том, что сеанс liferay отключен, тогда вся страница должна быть перенаправлена ​​на страницу входа. я указал следующие свойства в portal-ext.propertiesВремя сеанса связи на Liferay с многократным портлетом MVC

session.timeout.warning=1 
session.timeout.auto.extend=false 
session.timeout.redirect.on.expire=true 
browser.cache.signed.in.disabled=true 

Любые предложения?

+0

Попробуйте добавить в auth.login.url =/веб/гость/дом в портальной-доб. свойства, в которых ваш портлет входа отключен. –

ответ

0

Если вы просто выполняете навигацию Ajax в портлетах, вам может понадобиться подключиться к расширению сеанса Liferay (вам придется искать его - есть таймер на стороне клиента, который подсчитывает и отображает «сеанс» .timeout.warning "- я не могу дать указатели прямо сейчас)

В качестве альтернативы, если расширение сеанса приемлемо, если открыто окно браузера, вы можете использовать тот же механизм, чтобы показать альтернативное поведение: вместо с готовностью тайминга сессии, он может продлить сессию. См. Портал (-ext) .properties:

# 
# Set the auto-extend mode to true to avoid having to ask the user whether 
# to extend the session or not. Instead it will be automatically extended. 
# The purpose of this mode is to keep the session open as long as the user 
# browser is open and with a portal page loaded. It is recommended to use 
# this setting along with a smaller "session.timeout", such as 5 minutes for 
# better performance. 
# 
session.timeout.auto.extend=true 
0

Это происходит на всех ваших страницах или только на определенных страницах. ? Это происходит при нажатии любой кнопки?

Если это так, выполните следующие действия в методе, который вы звоните на нажатием кнопки,

function onClickFunction(){ 
var liferaySession = Liferay.Session._currentTime; 
if(liferaySession == '0'){ 
    //reload page 
    } 
else{ 
    //proceed 
    } 
}