0

ServletContainerSessionManager不是ValidatingSessionManager; 它是否遵循底层容器来处理孤儿清理?这似乎不对。

我假设切换到DefaultWebSessionManager,因为它是一个功能齐全的实现,不会有风险或缺点?有什么理由不是这个模块的默认设置吗?

4

1 回答 1

1

ServletContainerSessionManager确实为所有与会话相关的功能都遵从容器。 ShiroWebModule默认为这个只是因为这是已经预期的DefaultWebSecurityManager默认值 - 无论您使用的是基本的 ini 设置、spring 还是 guice,目的都是保持默认值相同。

话虽如此,如果您需要在 Shiro 中管理会话,则没有理由不切换到DefaultWebSessionManager. 确实,这就是该bindSessionManager方法存在的原因。

要切换,只需覆盖bindSessionManager

@Override
protected void bindSessionManager(AnnotatedBindingBuilder<SessionManager> bind) {
    bind.to(DefaultWebSessionManager.class).asEagerSingleton();
}
于 2012-10-12T22:50:03.793 回答