If you are using authorization caching for your realm and you want that
cache to be clustered you'll need to define a cache entry for that too:

For example:

     <cache name="com.foo.MyRealm.authorizationCache"
        diskPersistent="false"
        overflowToDisk="false"
        maxElementsInMemory="10000"
        eternal="true"
        timeToLiveSeconds="0"
        timeToIdleSeconds="0">
        <terracotta/>
     </cache>

-- Eric



On Mon, Aug 8, 2011 at 5:18 PM, Les Hazlewood <[email protected]> wrote:

> On Mon, Aug 8, 2011 at 6:47 AM, Chris <[email protected]> wrote:
> > You're welcome.
> >
> > I got to the bottom of the Terracotta Clustering issues I was having.
> >
> > The solution required correct sessionMode and cookie configuration as
> well
> > as working around a problem with the favicon.ico request in some browsers
> > (Chrome and Safari in particular).
> >
> > The configuration provided by F A V
> >
> http://shiro-user.582556.n2.nabble.com/Shiro-and-multiple-wars-within-the-same-Servlet-Container-tp5560737p5563334.html
> > on another question  supplied a working shiro.ini main config:
> >
> >
> >
> >> [main]
> >> # Cache for single sign on
> >> ssoCacheManager = org.apache.shiro.cache.ehcache.EhCacheManager
> >> ssoCacheManager.cacheManagerConfigFile = classpath:ehcache.xml
> >> securityManager.cacheManager = $ssoCacheManager
> >>
> >> # Native mode for single sign on
> >> securityManager.sessionMode = native
> >>
> >> # DAO for single sign on
> >> sessionDAO = org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO
> >> securityManager.sessionManager.sessionDAO = $sessionDAO
> >>
> >> # Cookie for single sign on
> >> cookie = org.apache.shiro.web.servlet.SimpleCookie
> >> cookie.name = SSOcookie
> >> cookie.path = /
> >> securityManager.sessionManager.sessionIdCookie = $cookie
> >>
> >> [urls]
> >> # Some browsers experience 404 errors when requesting the favicon.ico
> >> /favicon.ico = anon
> >>
> >
> > Note the favicon.ico pattern match.
>
> Yep, this is good to point out - I myself have that same rule in the
> Shiro configurations I use for the same reason.
>
> > The ehcache.xml file also needed to be tweaked from the default
> > configuration file following the
> >
> http://ehcache.org/documentation/distributed_caching_with_terracotta.html
> > Ehcache documentation :
> >
> >
> >
> >> <ehcache>
> >>     <terracottaConfig url="localhost:9510"/>
> >>     <diskStore path="java.io.tmpdir/shiro-ehcache"/>
> >>     <defaultCache
> >>             maxElementsInMemory="10000"
> >>             eternal="false"
> >>             timeToIdleSeconds="120"
> >>             timeToLiveSeconds="120"
> >>             overflowToDisk="false"
> >>             diskPersistent="false"
> >>             diskExpiryThreadIntervalSeconds="120">
> >>        <terracotta/>
> >>     </defaultCache>
> >>     <cache name="shiro-activeSessionCache"
> >>            maxElementsInMemory="10000"
> >>            eternal="true"
> >>            timeToLiveSeconds="0"
> >>            timeToIdleSeconds="0"
> >>            diskPersistent="false"
> >>            overflowToDisk="false"
> >>            diskExpiryThreadIntervalSeconds="600">
> >>        <terracotta/>
> >>     </cache>
> >>     <cache name="org.apache.shiro.realm.text.PropertiesRealm-0-accounts"
> >>            maxElementsInMemory="1000"
> >>            eternal="true"
> >>            overflowToDisk="false">
> >>        <terracotta/>
> >>     </cache>
> >> </ehcache>
> >>
> >
> > Also note the addition of the Terracotta elements in the ehcache and
> cache
> > blocks. The cache disk options have been toggled to false as well, as
> these
> > operations aren't supported in a cluster in this form.
>
> This is great - thanks for sharing Chris.  I'll add this to the
> documentation as well.
>
> > I hope I haven't missed anything obvious with this configuration.
> Together
> > with an Active/Passive Terracotta array I've successfully configured two
> > webapps served on each of three Tomcat servers to use a single sign on in
> a
> > proof of concept system.
> >
> > I'm very impressed with Shiro.
>
> We're glad you enjoy it!  Any time you have feedback like what you've
> shared already, please keep it coming - it is what helps Shiro become
> better.
>
> Best,
>
> --
> Les Hazlewood
> CTO, Katasoft | http://www.katasoft.com | 888.391.5282
> twitter: @lhazlewood | http://twitter.com/lhazlewood
> katasoft blog: http://www.katasoft.com/blogs/lhazlewood
> personal blog: http://leshazlewood.com
>

Reply via email to