1

我在 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 应用程序中使用它吗?

4

1 回答 1

0

EHCache有很多功能,看看网站。MemoryConstrainedCacheManager 基本上只是一个由有限大小的 Map 支持的缓存。

于 2017-11-16T15:21:43.500 回答