Tomcat不会为未经身份验证的用户

时间:2017-05-21 02:15:28

标签: java session tomcat caching

我正在使用基于FORM的身份验证和DataSourceRealm。当用户登录时,只要我保持登录状态,会话就会被正确缓存并保持相同的sessionID。

但是,当用户未登录时,Tomcat会在每次请求时更改会话。即使用户未登录,我也需要会话保持活动状态。

有没有办法让Tomcat缓存未经身份验证的用户会话?

编辑:

我刚注意到的一个值得注意的细节是它只发生在子域名上。即当我转到http://www.example.com/时,无论我是否经过身份验证,我都会在每个请求中正确获取相同的会话ID。但是,如果我转到http://subdomain.example.com/,未经身份验证的用户会为每个请求获取不同的sessionID。

在我的context.xml中,我有:

<Context sessionCookiePath="/" sessionCookieDomain=".example.com">
  ...
  <CookieProcessor className="org.apache.tomcat.util.http.LegacyCookieProcessor" />
  <Valve className="org.apache.catalina.authenticator.FormAuthenticator"/>
</Context>

另外,我尝试过使用:

changeSessionIdOnAuthentication="false"

没有成功。

0 个答案:

没有答案