Session mobile FirstHybrid应用程序中的Worklight 7.1会话超时
我正在构建一个混合应用程序,我们在应用程序中遇到了会话问题,我们在worklight.properties中定义了1分钟会话 文件,现在一分钟后,若我试图调用适配器服务,它仍在工作,那个么我如何在应用程序中维护会话,因为用户并没有注销。会话结束后,登录用户将如何重定向到登录页面 这是我的worklight.properties条目 serverSessionTimeout=1 我的安全领域定义如下: authenticationConfig.xmlSession mobile FirstHybrid应用程序中的Worklight 7.1会话超时,session,ibm-mobilefirst,worklight-security,Session,Ibm Mobilefirst,Worklight Security,我正在构建一个混合应用程序,我们在应用程序中遇到了会话问题,我们在worklight.properties中定义了1分钟会话 文件,现在一分钟后,若我试图调用适配器服务,它仍在工作,那个么我如何在应用程序中维护会话,因为用户并没有注销。会话结束后,登录用户将如何重定向到登录页面 这是我的worklight.properties条目 serverSessionTimeout=1 我的安全领域定义如下: authenticationConfig.xml <securityTests>
<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>
com.worklight.integration.auth.AdapterAuthenticator
com.worklight.core.auth.ext.HeaderAuthenticator
com.worklight.core.auth.ext.NonValidatingLoginModule
com.worklight.core.auth.ext.SingleIdentityLoginModule
com.worklight.core.auth.ext.RejectingLoginModule
查询
会话超时将如何工作以及用户在会话超时后将如何重定向到登录页面?默认情况下,MobileFirst Platform 7.1使用一种称为“会话独立”的模式。这意味着它根本不使用会话的概念,
serverSessionTimeout
的值不再相关
相反,您应该查看的值是每个loginModule
的expirationInSeconds
。每个登录模块都可以有自己的过期时间。尝试60秒的值,看看它如何影响您的流量
关于“用户将如何重定向到登录页面”,这一切都是通过您的质询处理程序完成的。当请求将被发送到受保护的适配器,并且登录模块过期时,您将收到与第一个请求相同的质询
由您在代码中捕获挑战(使用挑战处理程序)并向用户显示正确的登录提示。在worklight.properties中,能否检查
mfp.session.independent
和mfp.attrStore.type
?@NathanH mfp.session.independent和mfp.attrStore.type属性的值在我的worklight.properties中不可用。您的项目是否从零开始使用7.1,或者您是从以前版本的MFP导入/升级的吗?@Nathan它是ScratchThank的7.1谢谢-现在正在撰写答案。感谢您的回复,我在LoginModule中提供expirationInSeconds,尝试了您的上述解决方案,但我仍然能够从设备调用适配器。您第一次请求时,您是否收到登录提示?是的,在应用程序启动时,我们会收到登录提示。您的适配器受哪个安全测试保护?如果您有一个简单的项目要与我们共享,也许我可以尝试自己运行它。