我在 tomcat 中部署了两个以上的 Web 应用程序。其中一个应用程序使用 apache shiro 进行会话管理。我需要从第一个应用程序中获取会话 ID 并在我的其他应用程序中使用它。
例如
第一个应用程序示例使用MemoryConstrainedCacheManager
Shiro.ini
cacheManager = org.apache.shiro.cache.MemoryConstrainedCacheManager
securityManager.cacheManager = $cacheManager
对于第二个应用程序,如果我使用与第一个相同的配置
cacheManager = org.apache.shiro.cache.MemoryConstrainedCacheManager
securityManager.cacheManager = $cacheManager
SSO 会话管理不起作用。我需要重新登录。
如果我通过在 xml 中配置缓存来在两个应用程序中使用 EhcacheManager 它的工作,
ssoCacheManager = org.apache.shiro.cache.ehcache.EhCacheManager
ssoCacheManager.cacheManagerConfigFile = classpath:ehcache.xml
securityManager.cacheManager = $ssoCacheManager
MemoryConstrained 和 EHCache manager 有什么区别?我可以使用内存受限缓存管理器将会话 ID 存储在 tomcat 容器中并在其他 Web 应用程序中使用它吗?