HI Andy,

I just committed the fix.  If using Maven snapshots, please await for
the Hudson build to complete and then try the new snapshot.

Cheers,

Les

On Thu, Aug 20, 2009 at 2:39 PM, Les Hazlewood<[email protected]> wrote:
> Hi Andy,
>
> I had to move the issue to Shiro's issue space (Ki is now defunct):
>
> https://issues.apache.org/jira/browse/SHIRO-85
>
> Regards,
>
> Les
>
> On Thu, Aug 20, 2009 at 2:30 PM, Les Hazlewood<[email protected]> wrote:
>> Thanks!
>>
>> On Thu, Aug 20, 2009 at 2:02 PM, Andy Tripp<[email protected]> wrote:
>>> Jira issue created:
>>> https://issues.apache.org/jira/browse/KI-82
>>>
>>>> -----Original Message-----
>>>> From: [email protected] [mailto:[email protected]] On
>>>> Behalf Of Les Hazlewood
>>>> Sent: Thursday, August 20, 2009 11:53 AM
>>>> To: [email protected]
>>>> Subject: Re: need more help with SSO
>>>>
>>>> Hi Andy,
>>>>
>>>> Can you please make note of this in a Jira issue?  I'll fix it right
>>>> away, but I'd like a record of this so when I modify the code, I can
>>>> comment exactly why the change is required to ensure someone in the
>>>> future doesn't accidentally revert the change.
>>>>
>>>> Thanks!
>>>>
>>>> Les
>>>>
>>>> On Thu, Aug 20, 2009 at 11:27 AM, Andy Tripp<[email protected]>
>>>> wrote:
>>>> > Les,
>>>> >
>>>> > I finally found the problem. This line...
>>>> >   securityManager.sessionDAO = $sessionDAO
>>>> > ...was being processed BEFORE this line...
>>>> >   securityManager.sessionManager = $sessionManager
>>>> >
>>>> > In ReflectionBuilder.buildObjects(), instanceMap and propertyMap need to
>>>> be LinkedHashMap type, not just HashMap. With HashMap, the properties in
>>>> ShiroFilter are being processed in arbitrary order, rather than the order
>>>> listed. That would explain why it works for you and not me - you got
>>>> unlucky :)
>>>> >
>>>> > Andy
>>>> >
>>>> >
>>>> >> -----Original Message-----
>>>> >> From: Andy Tripp [mailto:[email protected]]
>>>> >> Sent: Wednesday, August 19, 2009 4:02 PM
>>>> >> To: [email protected]
>>>> >> Subject: RE: need more help with SSO
>>>> >>
>>>> >> Les,
>>>> >> Sorry, that last email was a mistake on my part.
>>>> >>
>>>> >> Les,
>>>> >>
>>>> >> What I'm seeing now is that the DefaultWebSecurityManager instance's
>>>> >> SessionManager is always set to ServletContainerSessionManager, when it
>>>> >> should be a DefaultWebSessionManager. I tried adding these to my
>>>> config:
>>>> >>
>>>> >>     sessionManager =
>>>> org.apache.shiro.web.session.DefaultWebSessionManager
>>>> >>     securityManager.sessionManager = $sessionManager
>>>> >>
>>>> >> ...but still, the DefaultWebSecurityManager.sessionManager field is an
>>>> >> instance of ServletContainerSessionManager.
>>>> >>
>>>> >> I'm stumped. I guess I'm not clear on what SecurityManager instance is
>>>> >> being called by this config stuff. Perhaps I'm missing some sort of:
>>>> >>     something.securityManager = securityManager
>>>> >>
>>>> >> Andy
>>>> >> p.s. here's my full [main] section of my filter:
>>>> >>
>>>> >>      realmA = org.apache.shiro.realm.text.PropertiesRealm
>>>> >>      securityManager = org.apache.shiro.web.DefaultWebSecurityManager
>>>> >>      sessionManager =
>>>> >> org.apache.shiro.web.session.DefaultWebSessionManager
>>>> >>      securityManager.sessionManager = $sessionManager
>>>> >>
>>>> >>      securityManager.sessionMode = native
>>>> >>
>>>> >>      cacheManager = org.apache.shiro.cache.DefaultCacheManager
>>>> >>
>>>> >>      sessionDAO = org.apache.shiro.session.mgt.eis.MemorySessionDAO
>>>> >>      sessionDAO.cacheManager = $cacheManager
>>>> >>      securityManager.sessionDAO = $sessionDAO
>>>> >>      securityManager.cacheManager = $cacheManager
>>>> >>
>>>> >>      securityManager.realm = $realmA
>>>> >>
>>>> >> > -----Original Message-----
>>>> >> > From: [email protected] [mailto:[email protected]]
>>>> On
>>>> >> > Behalf Of Les Hazlewood
>>>> >> > Sent: Wednesday, August 19, 2009 2:20 PM
>>>> >> > To: [email protected]
>>>> >> > Subject: Re: need more help with SSO
>>>> >> >
>>>> >> > Hrm - that would be very odd if the DefaultWebSecurityManager was not
>>>> >> > the instance - that is what the ShiroFilter enables at startup by
>>>> >> > default.  Just in case, try this as your very first config line:
>>>> >> >
>>>> >> > securityManager = org.apache.shiro.web.DefaultWebSecurityManager
>>>> >> >
>>>> >> > What does your debugger say is the securityManager instance?
>>>> >> > Something is very strange...
>>>> >> >
>>>> >> > Thanks for the extra info.  Are there any JUnit tests you might be
>>>> >> > able to send our way?
>>>> >> >
>>>> >> > - Les
>>>> >> >
>>>> >> > On Wed, Aug 19, 2009 at 1:56 PM, Andy Tripp<[email protected]>
>>>> >> > wrote:
>>>> >> > > Les,
>>>> >> > > I put tracing code in DefaultWebSecurityManager.setSessionMode(),
>>>> and
>>>> >> it
>>>> >> > appears that this method is not getting called. So the
>>>> >> > ServletContainerSessionManager is not getting replace by a
>>>> >> > DefaultWebSessionManager. So it appears that this line in the filter
>>>> >> > config:
>>>> >> > >
>>>> >> > >   securityManager.sessionMode = native
>>>> >> > >
>>>> >> > > is having no effect (note that it's securityManager, not
>>>> >> sessionManager
>>>> >> > as you suggest in the previous response).
>>>> >> > >
>>>> >> > > I'll keep trying to track it down further, any pointers would be
>>>> >> > appreciated. I'm off to try to find the some SecurityManager
>>>> instance,
>>>> >> > which I suspect is something other than a DefaultWebSecurityManager,
>>>> >> which
>>>> >> > would mean that this config line is failing silently.
>>>> >> > >
>>>> >> > > Obviously, all this dependency injection via XML is driving me
>>>> >> > completely crazy. I may be allergic to server-side Java :)
>>>> >> > >
>>>> >> > > Andy
>>>> >> > >
>>>> >> > >> -----Original Message-----
>>>> >> > >> From: [email protected]
>>>> [mailto:[email protected]]
>>>> >> On
>>>> >> > >> Behalf Of Les Hazlewood
>>>> >> > >> Sent: Wednesday, August 19, 2009 12:46 PM
>>>> >> > >> To: [email protected]
>>>> >> > >> Subject: Re: need more help with SSO
>>>> >> > >>
>>>> >> > >> Hi Andy,
>>>> >> > >>
>>>> >> > >> A quick note about the message: that was a bug in the exception
>>>> >> > >> message, but the code is working as expected:  if the wrapped
>>>> >> > >> SessionManager does not implement the SessionDAOAware interface,
>>>> it
>>>> >> > >> cannot be injected with a SessionDAO.  I have since fixed the
>>>> message
>>>> >> > >> to be correct and committed this change, although the code logic
>>>> has
>>>> >> > >> not been changed.
>>>> >> > >>
>>>> >> > >> Also, make sure that you do this:
>>>> >> > >>
>>>> >> > >> sessionManager.sessionMode = native
>>>> >> > >>
>>>> >> > >> before you try to inject the SessionDAO.  The above call will
>>>> >> > >> automatically substitute the ServletContainerSessionManager for a
>>>> >> > >> DefaultWebSessionManager implementation on the fly.  This latter
>>>> >> > >> implementation does in fact implement SessionDAOAware and should
>>>> >> > >> readily accept SessionDAO instances that are passed through the
>>>> >> > >> securityManager.setSessionDAO(...) call.
>>>> >> > >>
>>>> >> > >> In the meantime, I'll try to create a unit test with the
>>>> ShiroFilter
>>>> >> > >> to see I can accurately recreate your issue, but I've been
>>>> strapped
>>>> >> > >> for time lately - if you could create one (if possible) and post
>>>> it
>>>> >> to
>>>> >> > >> a Jira issue, that would help a lot.
>>>> >> > >>
>>>> >> > >> Regards,
>>>> >> > >>
>>>> >> > >> Les
>>>> >> > >>
>>>> >> > >> On Tue, Aug 18, 2009 at 11:34 AM, Les
>>>> >> Hazlewood<[email protected]>
>>>> >> > >> wrote:
>>>> >> > >> > Hi Andy,
>>>> >> > >> >
>>>> >> > >> > Thanks very much for sending this along - it is very helpful.
>>>>  I'll
>>>> >> > be
>>>> >> > >> > able to look into this a bit more later tonight.
>>>> >> > >> >
>>>> >> > >> > Regards,
>>>> >> > >> >
>>>> >> > >> > Les
>>>> >> > >> >
>>>> >> > >> > On Tue, Aug 18, 2009 at 11:21 AM, Andy
>>>> >> Tripp<[email protected]>
>>>> >> > >> wrote:
>>>> >> > >> >> Les,
>>>> >> > >> >> I tracked this problem down through a maze of try/catch blocks,
>>>> I
>>>> >> > see
>>>> >> > >> this exception:
>>>> >> > >> >>
>>>> >> > >> >> javax.servlet.ServletException: Unable to load from text
>>>> >> > configuration.
>>>> >> > >> e2=org.apache.shiro.config.ConfigurationException:
>>>> >> > >> org.apache.shiro.config.ConfigurationException: Unable to set
>>>> >> property
>>>> >> > >> [sessionDAO] with value [$sessionDAO].  If '$sessionDAO' is a
>>>> >> reference
>>>> >> > to
>>>> >> > >> another (previously defined) object, please prefix it with '$' to
>>>> >> > indicate
>>>> >> > >> that the referenced object should be used as the actual value.
>>>>  For
>>>> >> > >> example, $$sessionDAO
>>>> >> > >> >>
>>>> >> > >> >> ...which I tracked down to the
>>>> ReflectionBuilder.applyProperty()
>>>> >> > method
>>>> >> > >> calling BeanUtils.setProperty() and catching an
>>>> InvocationException.
>>>> >> > The
>>>> >> > >> cause of that exception is:
>>>> >> > >> >>
>>>> >> > >> >> java.lang.IllegalArgumentException: The underlying session
>>>> manager
>>>> >> > is
>>>> >> > >> null or does not implement the
>>>> >> > org.apache.shiro.session.mgt.eis.SessionDAO
>>>> >> > >> >> interface, which is required if the underlying instance is to
>>>> >> > receive
>>>> >> > >> the sessionDAO argument.
>>>> >> > >> >>
>>>> >> > >> >>
>>>> >> > >> >> ...which comes from SessionsSecurityManager.setSessionDAO(),
>>>> which
>>>> >> > >> checks
>>>> >> > >> >> to see that the SessionDAO parameter implements
>>>> SessionDAOAware.
>>>> >> The
>>>> >> > >> passed value is actually of class ServletContainerSessionManager,
>>>> >> which
>>>> >> > >> does NOT
>>>> >> > >> >> implement SessionDAOAware.
>>>> >> > >> >>
>>>> >> > >> >> So I guess the mystery is why we're getting setSessionDAO()
>>>> being
>>>> >> > >> passed a ServletContainerSessionManager, when in fact we have this
>>>> >> > config
>>>> >> > >> line:
>>>> >> > >> >>
>>>> >> > >> >>   sessionDAO =
>>>> org.apache.shiro.session.mgt.eis.MemorySessionDAO
>>>> >> > >> >>
>>>> >> > >> >> Hope this helps,
>>>> >> > >> >> Andy
>>>> >> > >> >>
>>>> >> > >> >>
>>>> >> > >> >>
>>>> >> > >> >>
>>>> >> > >> >>> -----Original Message-----
>>>> >> > >> >>> From: Andy Tripp [mailto:[email protected]]
>>>> >> > >> >>> Sent: Tuesday, August 18, 2009 10:04 AM
>>>> >> > >> >>> To: [email protected]
>>>> >> > >> >>> Subject: RE: need more help with SSO
>>>> >> > >> >>>
>>>> >> > >> >>> Les,
>>>> >> > >> >>>
>>>> >> > >> >>> I tried what you have below and still get the same "Unable to
>>>> >> load
>>>> >> > >> from
>>>> >> > >> >>> text configuration" error. I tried it with the latest Shiro. I
>>>> >> > >> narrowed
>>>> >> > >> >>> the problem down to this line:
>>>> >> > >> >>>
>>>> >> > >> >>> securityManager.sessionDAO = $sessionDAO
>>>> >> > >> >>>
>>>> >> > >> >>> I get no errors with that line commented out.
>>>> >> > >> >>>
>>>> >> > >> >>> Any ideas? If not, I could put some tracing in the
>>>> >> > >> OncePerRequestFilter
>>>> >> > >> >>> class to narrow the problem down further.
>>>> >> > >> >>>
>>>> >> > >> >>> Andy
>>>> >> > >> >>>
>>>> >> > >> >>> > -----Original Message-----
>>>> >> > >> >>> > From: [email protected]
>>>> >> > [mailto:[email protected]]
>>>> >> > >> On
>>>> >> > >> >>> > Behalf Of Les Hazlewood
>>>> >> > >> >>> > Sent: Monday, August 17, 2009 5:11 PM
>>>> >> > >> >>> > To: [email protected]
>>>> >> > >> >>> > Subject: Re: need more help with SSO
>>>> >> > >> >>> >
>>>> >> > >> >>> > Hi Andy,
>>>> >> > >> >>> >
>>>> >> > >> >>> > I just verified that this simple test config works, although
>>>> >> not
>>>> >> > in
>>>> >> > >> a
>>>> >> > >> >>> > web environment:
>>>> >> > >> >>> >
>>>> >> > >> >>> > ----
>>>> >> > >> >>> > realmA = org.apache.shiro.realm.text.PropertiesRealm
>>>> >> > >> >>> >
>>>> >> > >> >>> > securityManager.sessionMode = native
>>>> >> > >> >>> >
>>>> >> > >> >>> > cacheManager = org.apache.shiro.cache.DefaultCacheManager
>>>> >> > >> >>> >
>>>> >> > >> >>> > sessionDAO =
>>>> org.apache.shiro.session.mgt.eis.MemorySessionDAO
>>>> >> > >> >>> > sessionDAO.cacheManager = $cacheManager
>>>> >> > >> >>> > securityManager.sessionDAO = $sessionDAO
>>>> >> > >> >>> > securityManager.cacheManager = $cacheManager
>>>> >> > >> >>> >
>>>> >> > >> >>> > securityManager.realm = $realmA
>>>> >> > >> >>> > ----
>>>> >> > >> >>> >
>>>> >> > >> >>> > Could you please try that out and see if it works in your
>>>> web
>>>> >> > >> >>> > environment?  If so, can you try substituting the
>>>> >> > >> DefaultCacheManager
>>>> >> > >> >>> > implementation (and your realm implementation) with with
>>>> your
>>>> >> > >> >>> > implementations and see what happens?
>>>> >> > >> >>> >
>>>> >> > >> >>> > - Les
>>>> >> > >> >>> >
>>>> >> > >> >>> > On Mon, Aug 17, 2009 at 4:27 PM, Andy
>>>> >> > Tripp<[email protected]>
>>>> >> > >> >>> > wrote:
>>>> >> > >> >>> > > Here's the complete tomcat log file:
>>>> >> > >> >>> > >
>>>> >> > >> >>> > > Aug 17, 2009 3:40:13 PM
>>>> >> > org.apache.catalina.core.StandardContext
>>>> >> > >> >>> > filterStart
>>>> >> > >> >>> > > SEVERE: Exception starting filter ShiroFilter
>>>> >> > >> >>> > > javax.servlet.ServletException: Unable to load from text
>>>> >> > >> >>> configuration.
>>>> >> > >> >>> > >        at
>>>> >> > >> >>> >
>>>> >> > >> >>>
>>>> >> > >>
>>>> >> >
>>>> >>
>>>> org.apache.shiro.web.servlet.OncePerRequestFilter.init(OncePerRequestFilte
>>>> >> > >> >>> > r.java:148)
>>>> >> > >> >>> > >        at
>>>> >> > >> >>> >
>>>> >> > >> >>>
>>>> >> > >>
>>>> >> >
>>>> >>
>>>> org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilt
>>>> >> > >> >>> > erConfig.java:221)
>>>> >> > >> >>> > >        at
>>>> >> > >> >>> >
>>>> >> > >> >>>
>>>> >> > >>
>>>> >> >
>>>> >>
>>>> org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationF
>>>> >> > >> >>> > ilterConfig.java:302)
>>>> >> > >> >>> > >        at
>>>> >> > >> >>> >
>>>> >> > >> >>>
>>>> >> > >>
>>>> >> >
>>>> >>
>>>> org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterC
>>>> >> > >> >>> > onfig.java:78)
>>>> >> > >> >>> > >        at
>>>> >> > >> >>> >
>>>> >> > >> >>>
>>>> >> > >>
>>>> >> >
>>>> >>
>>>> org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:
>>>> >> > >> >>> > 3635)
>>>> >> > >> >>> > >        at
>>>> >> > >> >>> >
>>>> >> > >> >>>
>>>> >> > >>
>>>> >> >
>>>> >>
>>>> org.apache.catalina.core.StandardContext.start(StandardContext.java:4222)
>>>> >> > >> >>> > >        at
>>>> >> > >> >>> >
>>>> >> > >> >>>
>>>> >> > >>
>>>> >> >
>>>> >>
>>>> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java
>>>> >> > >> >>> > :760)
>>>> >> > >> >>> > >        at
>>>> >> > >> >>> >
>>>> >> > >>
>>>> >> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
>>>> >> > >> >>> > >        at
>>>> >> > >> >>> >
>>>> >> > >>
>>>> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
>>>> >> > >> >>> > >        at
>>>> >> > >> >>> >
>>>> >> > >> >>>
>>>> >> > >>
>>>> >> >
>>>> >>
>>>> org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:927
>>>> >> > >> >>> > )
>>>> >> > >> >>> > >        at
>>>> >> > >> >>> >
>>>> >> > >> >>>
>>>> >> > >>
>>>> >> >
>>>> >>
>>>> org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:8
>>>> >> > >> >>> > 90)
>>>> >> > >> >>> > >        at
>>>> >> > >> >>> >
>>>> >> > >>
>>>> >> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
>>>> >> > >> >>> > >        at
>>>> >> > >> >>> >
>>>> >> > org.apache.catalina.startup.HostConfig.start(HostConfig.java:1150)
>>>> >> > >> >>> > >        at
>>>> >> > >> >>> >
>>>> >> > >> >>>
>>>> >> > >>
>>>> >> >
>>>> >>
>>>> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
>>>> >> > >> >>> > >        at
>>>> >> > >> >>> >
>>>> >> > >> >>>
>>>> >> > >>
>>>> >> >
>>>> >>
>>>> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupp
>>>> >> > >> >>> > ort.java:120)
>>>> >> > >> >>> > >        at
>>>> >> > >> >>> >
>>>> >> > >>
>>>> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
>>>> >> > >> >>> > >        at
>>>> >> > >> >>> >
>>>> >> > org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
>>>> >> > >> >>> > >        at
>>>> >> > >> >>> >
>>>> >> > >>
>>>> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
>>>> >> > >> >>> > >        at
>>>> >> > >> >>> >
>>>> >> > >>
>>>> >> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
>>>> >> > >> >>> > >        at
>>>> >> > >> >>> >
>>>> >> > >>
>>>> >> >
>>>> org.apache.catalina.core.StandardService.start(StandardService.java:448)
>>>> >> > >> >>> > >        at
>>>> >> > >> >>> >
>>>> >> > >>
>>>> >> org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
>>>> >> > >> >>> > >        at
>>>> >> > >> >>> org.apache.catalina.startup.Catalina.start(Catalina.java:552)
>>>> >> > >> >>> > >        at
>>>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>>> >> > >> Method)
>>>> >> > >> >>> > >        at
>>>> >> > >> >>> >
>>>> >> > >> >>>
>>>> >> > >>
>>>> >> >
>>>> >>
>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
>>>> >> > >> >>> > 39)
>>>> >> > >> >>> > >        at
>>>> >> > >> >>> >
>>>> >> > >> >>>
>>>> >> > >>
>>>> >> >
>>>> >>
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorIm
>>>> >> > >> >>> > pl.java:25)
>>>> >> > >> >>> > >        at java.lang.reflect.Method.invoke(Method.java:597)
>>>> >> > >> >>> > >        at
>>>> >> > >> >>> >
>>>> org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
>>>> >> > >> >>> > >        at
>>>> >> > >> >>> org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
>>>> >> > >> >>> > > Aug 17, 2009 3:40:13 PM
>>>> >> > >> org.apache.catalina.core.ApplicationContext
>>>> >> > >> >>> log
>>>> >> > >> >>> > > INFO: org.apache.webapp.balancer.BalancerFilter: init():
>>>> >> > >> ruleChain:
>>>> >> > >> >>> > [org.apache.webapp.balancer.RuleChain:
>>>> >> > >> >>> > [org.apache.webapp.balancer.rules.URLStringMatchRule: Target
>>>> >> > string:
>>>> >> > >> >>> News
>>>> >> > >> >>> > / Redirect URL: http://www.cnn.com],
>>>> >> > >> >>> > [org.apache.webapp.balancer.rules.RequestParameterRule:
>>>> Target
>>>> >> > param
>>>> >> > >> >>> name:
>>>> >> > >> >>> > paramName / Target param value: paramValue / Redirect URL:
>>>> >> > >> >>> > http://www.yahoo.com],
>>>> >> > >> >>> > [org.apache.webapp.balancer.rules.AcceptEverythingRule:
>>>> >> Redirect
>>>> >> > >> URL:
>>>> >> > >> >>> > http://jakarta.apache.org]]
>>>> >> > >> >>> > > Aug 17, 2009 3:40:13 PM
>>>> >> > >> org.apache.catalina.core.ApplicationContext
>>>> >> > >> >>> log
>>>> >> > >> >>> > > INFO: ContextListener: contextInitialized()
>>>> >> > >> >>> > > Aug 17, 2009 3:40:13 PM
>>>> >> > >> org.apache.catalina.core.ApplicationContext
>>>> >> > >> >>> log
>>>> >> > >> >>> > > INFO: SessionListener: contextInitialized()
>>>> >> > >> >>> > > Aug 17, 2009 3:40:13 PM
>>>> >> > >> org.apache.catalina.core.ApplicationContext
>>>> >> > >> >>> log
>>>> >> > >> >>> > > INFO: ContextListener: contextInitialized()
>>>> >> > >> >>> > > Aug 17, 2009 3:40:13 PM
>>>> >> > >> org.apache.catalina.core.ApplicationContext
>>>> >> > >> >>> log
>>>> >> > >> >>> > > INFO: SessionListener: contextInitialized()
>>>> >> > >> >>> > > Aug 17, 2009 4:25:59 PM
>>>> >> > >> org.apache.catalina.core.ApplicationContext
>>>> >> > >> >>> log
>>>> >> > >> >>> > > INFO: SessionListener: contextDestroyed()
>>>> >> > >> >>> > > Aug 17, 2009 4:25:59 PM
>>>> >> > >> org.apache.catalina.core.ApplicationContext
>>>> >> > >> >>> log
>>>> >> > >> >>> > > INFO: ContextListener: contextDestroyed()
>>>> >> > >> >>> > > Aug 17, 2009 4:25:59 PM
>>>> >> > >> org.apache.catalina.core.ApplicationContext
>>>> >> > >> >>> log
>>>> >> > >> >>> > > INFO: SessionListener: contextDestroyed()
>>>> >> > >> >>> > > Aug 17, 2009 4:25:59 PM
>>>> >> > >> org.apache.catalina.core.ApplicationContext
>>>> >> > >> >>> log
>>>> >> > >> >>> > > INFO: ContextListener: contextDestroyed()
>>>> >> > >> >>> > >
>>>> >> > >> >>> > >> -----Original Message-----
>>>> >> > >> >>> > >> From: Les Hazlewood [mailto:[email protected]]
>>>> >> > >> >>> > >> Sent: Monday, August 17, 2009 4:24 PM
>>>> >> > >> >>> > >> To: [email protected]
>>>> >> > >> >>> > >> Subject: Re: need more help with SSO
>>>> >> > >> >>> > >>
>>>> >> > >> >>> > >> Hi Andy,
>>>> >> > >> >>> > >>
>>>> >> > >> >>> > >> It goes in the main section, definitely.  Is there any
>>>> more
>>>> >> to
>>>> >> > >> the
>>>> >> > >> >>> > >> exception?  I'd like to see the entire stack trace if
>>>> >> > possible.
>>>> >> > >> >>> > >>
>>>> >> > >> >>> > >> - Les
>>>> >> > >> >>> > >>
>>>> >> > >> >>> > >> On Mon, Aug 17, 2009 at 3:41 PM, Andy
>>>> >> > >> Tripp<[email protected]>
>>>> >> > >> >>> > >> wrote:
>>>> >> > >> >>> > >> > I created my own Cache and CacheManager:
>>>> >> > >> >>> > >> >
>>>> >> > >> >>> > >> > public class VonageDistributedSessionCache implements
>>>> >> Cache
>>>> >> > {
>>>> >> > >> >>> > >> >    public VonageDistributedSessionCache(String name) {
>>>> >> > >> >>> > >> >
>>>>  System.err.println("VonageDistributedSessionCache
>>>> >> > >> >>> > >> > constructor.");
>>>> >> > >> >>> > >> >    }
>>>> >> > >> >>> > >> >    ...
>>>> >> > >> >>> > >> > }
>>>> >> > >> >>> > >> >
>>>> >> > >> >>> > >> > public class VonageDistributedSessionCacheManager
>>>> >> implements
>>>> >> > >> >>> > >> > CacheManager {
>>>> >> > >> >>> > >> >    public Cache getCache(String name) throws
>>>> >> CacheException
>>>> >> > {
>>>> >> > >> >>> > >> >        return new VonageDistributedSessionCache(name);
>>>> >> > >> >>> > >> >    }
>>>> >> > >> >>> > >> > }
>>>> >> > >> >>> > >> >
>>>> >> > >> >>> > >> > Then in [main] section of my ShiroFilter in web.xml, I
>>>> >> have:
>>>> >> > >> >>> > >> >   [main]
>>>> >> > >> >>> > >> >   realmA =
>>>> >> com.vonage.auth.client.VonageAuthenticationRealm
>>>> >> > >> >>> > >> >
>>>> >> > >> >>> > >> >   securityManager.sessionMode = native
>>>> >> > >> >>> > >> >
>>>> >> > >> >>> > >> > And when I add this:
>>>> >> > >> >>> > >> >  # pull in vonage centralized authentication:
>>>> >> > >> >>> > >> >  cacheManager =
>>>> >> > >> >>> > >> >
>>>> >> com.vonage.auth.client.VonageDistributedSessionCacheManager
>>>> >> > >> >>> > >> >  sessionDAO =
>>>> >> > org.apache.shiro.session.mgt.eis.MemorySessionDAO
>>>> >> > >> >>> > >> >  sessionDAO.cacheManager = $cacheManager
>>>> >> > >> >>> > >> >  securityManager.sessionDAO = $sessionDAO
>>>> >> > >> >>> > >> >  securityManager.cacheManager = $cacheManager
>>>> >> > >> >>> > >> >
>>>> >> > >> >>> > >> > ...I get this error:
>>>> >> > >> >>> > >> > javax.servlet.ServletException: Unable to load from
>>>> text
>>>> >> > >> >>> > configuration.
>>>> >> > >> >>> > >> >
>>>> >> > >> >>> > >> > So...does this injection go here in the [main] section
>>>> of
>>>> >> > >> >>> > ShiroFilter,
>>>> >> > >> >>> > >> > or somewhere else?
>>>> >> > >> >>> > >> >
>>>> >> > >> >>> > >> > Thanks,
>>>> >> > >> >>> > >> > Andy
>>>> >> > >> >>> > >> >
>>>> >> > >> >>> > >
>>>> >> > >> >>
>>>> >> > >> >
>>>> >> > >
>>>> >
>>>
>>
>

Reply via email to