2015-11-25 2 views
1

Я строю гибридное приложение, мы сталкиваемся проблема с сессии в приложении мы определили 1 минутную сессию в worklight.properties файлов и теперь через одну минуту, если я пытался службы переадресации вызовов он все еще работает, поэтому как я могу поддерживать сеанс в своем приложении, так как пользователь не выходит из системы. также после сеанса, как зарегистрированный пользователь будет перенаправлять на страницу входа?Worklight 7.1 Тайм-аут сеанса в мобильном FirstHybrid приложения

Вот мои worklight.properties запись

serverSessionTimeout = 1

моя сфера безопасности определены ниже:

authenticationConfig.xml

<securityTests> 

<mobileSecurityTest name="PushSecurityTest"> 
    <testAppAuthenticity /> 
    <testUser realm="AuthRealm" /> 
    <testDeviceId provisioningType="none" /> 
</mobileSecurityTest> 

<customSecurityTest name="PushSecurityTestNew"> 
    <test realm="wl_antiXSRFRealm" /> 
    <test realm="wl_authenticityRealm" /> 
    <test realm="wl_remoteDisableRealm" /> 
    <test realm="wl_anonymousUserRealm" isInternalUserID="true" /> 
    <test realm="wl_deviceNoProvisioningRealm" isInternalDeviceID="true" /> 
</customSecurityTest> 

<customSecurityTest name="SubscribeServlet"> 
<test realm="SubscribeServlet" isInternalUserID="true"/> 
</customSecurityTest> 

</securityTests> 
<realms>  
<realm loginModule="AuthLoginModule" name="AuthRealm"> 
<className>com.worklight.integration.auth.AdapterAuthenticator</className> 
<parameter name="login-function" value="PushAdapter.onAuthRequired"/> 
<parameter name="logout-function" value="PushAdapter.onLogout"/> 
</realm> 
<realm name="SubscribeServlet" loginModule="rejectAll"> 

<className>com.worklight.core.auth.ext.HeaderAuthenticator</className> 

</realm> 
</realms>  


<loginModules> 
    <loginModule expirationInSeconds="-1" name="AuthLoginModule"> 
     <className>com.worklight.core.auth.ext.NonValidatingLoginModule</className> 
    </loginModule> 


    <loginModule name="requireLogin" expirationInSeconds="-1"> 

    <className>com.worklight.core.auth.ext.SingleIdentityLoginModule</className> 

</loginModule> 


<loginModule name="rejectAll" expirationInSeconds="-1"> 

<className>com.worklight.core.auth.ext.RejectingLoginModule</className> 

</loginModule> 


</loginModules> 

Query

Как будет работать тайм-аут сеанса и как пользователь перенаправит страницу входа после таймаута сеанса?

+0

В ваших ** worklight.properties **, можете ли вы проверить значения 'mfp.session.independent' и' mfp.attrStore.type'? –

+0

Свойства @NathanH mfp.session.independent и mfp.attrStore.type недоступны в моих свойствах worklight.properties. – Priyank

+0

Ваш проект использует 7.1 с нуля, или вы импортировали/обновили предыдущую версию MFP? –

ответ

2

По умолчанию MobileFirst Platform 7.1 использует режим, называемый «независимым от сеанса». Это означает, что он вообще не использует концепцию сеанса, а значение для serverSessionTimeout больше не актуально.

Вместо этого значения, которые вы должны посмотреть, это expirationInSeconds для каждого из ваших loginModule. Каждый модуль входа может иметь свое собственное время истечения. Попробуйте значение 60 секунд и посмотрите, как он влияет на ваш поток.

Что касается «того, как пользователь будет перенаправляться на страницу входа», все это делается с помощью обработчика вызовов. Когда запрос будет отправлен защищенному адаптеру, и модуль входа в систему истек, вы получите тот же вызов, который был отправлен для первого запроса.

Это зависит от вас, в коде, чтобы поймать вызов (обработчик вызова) и отобразить правильное приглашение для входа пользователю.

+0

Спасибо за ответ. Я попробовал ваше решение выше, предоставив expirationInSeconds в loginmodules, но все же могу активировать адаптер с устройства. – Priyank

+0

Как насчет первого запроса, вы получаете приглашение для входа в систему? –

+0

Да при запуске приложения мы получаем приглашение для входа. – Priyank