[
https://issues.apache.org/jira/browse/SHIRO-141?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12839971#action_12839971
]
Natalie Metzger edited comment on SHIRO-141 at 3/8/10 3:04 PM:
---------------------------------------------------------------
Hi all,
as I see it, the problem is somewhat deeper. I have a web application, and my
subject is a DelegatingSubject with a DefaultWebSecurityManager. Once I call
the login() method on this subject, the associated RememberMeManager is unknown
as DefaultSecurityManager.login() is called. Shouldn't you override login() for
the DefaultWebSecurityManager to make sure that the correct RememberMeManager
is set?
Natalie
was (Author: nmetzger):
Hi all,
as I see it, the problem is somewhat deeper. I have a web application, and my
subject is a DelegatingSubject with a DefaultWebSecurityManager. Once I call
the login() method on this subject, the associated RememberMeManager is unknown
as DefaultSecurityManager.login() is called. Shouldn't you add a method
DefaultWebSecurityManager.login() that just calls super.login()?
Natalie
> Problem with WebRememberMeManager
> ---------------------------------
>
> Key: SHIRO-141
> URL: https://issues.apache.org/jira/browse/SHIRO-141
> Project: Shiro
> Issue Type: Bug
> Components: Authentication (log-in)
> Environment: Windows vista running Eclipse Galileo v.3.5 w/ Google
> App Engine plugin - Debug mode
> Reporter: Chris Dutrow
> Assignee: Les Hazlewood
>
> I executed the following code to see if I needed to get the current user
> again after logging out:
> Subject currentUser;
> currentUser = SecurityUtils.getSubject(); // < --No exception
> currentUser = SecurityUtils.getSubject(); // < --No exception
> currentUser.logout(); // < --No
> exception
> currentUser = SecurityUtils.getSubject(); // < --EXCEPTION
> Resulting in the application throwing a NullPointerException from
> WebRememberMeManager.
> Here is the stack trace: (I'm currently trying to learn how to install and
> use JUnit)
> 32046 [btpool0-1] WARN org.apache.shiro.mgt.DefaultSecurityManager - Delegate
> RememberMeManager instance of type
> [org.apache.shiro.web.WebRememberMeManager] threw an exception during
> getRememberedPrincipals().
> java.lang.NullPointerException
> at
> org.apache.shiro.web.attr.CookieAttribute.getCookie(CookieAttribute.java:262)
> at
> org.apache.shiro.web.attr.CookieAttribute.removeValue(CookieAttribute.java:357)
>
> at
> org.apache.shiro.web.WebRememberMeManager.forgetIdentity(WebRememberMeManager.java:320)
>
> at
> org.apache.shiro.web.WebRememberMeManager.forgetIdentity(WebRememberMeManager.java:316)
>
> at
> org.apache.shiro.mgt.AbstractRememberMeManager.onRememberedPrincipalFailure(AbstractRememberMeManager.java:547)
>
> at
> org.apache.shiro.mgt.AbstractRememberMeManager.getRememberedPrincipals(AbstractRememberMeManager.java:488)
>
> at
> org.apache.shiro.mgt.DefaultSecurityManager.getRememberedIdentity(DefaultSecurityManager.java:598)
>
> at
> org.apache.shiro.mgt.DefaultSecurityManager.resolvePrincipals(DefaultSecurityManager.java:486)
>
> at
> org.apache.shiro.mgt.DefaultSecurityManager.createSubject(DefaultSecurityManager.java:363)
>
> at
> org.apache.shiro.subject.Subject$Builder.buildSubject(Subject.java:751)
> at org.apache.shiro.SecurityUtils.getSubject(SecurityUtils.java:57)
> at burp_erp_t1.TestShiroServlet.login(TestShiroServlet.java:43)
> at burp_erp_t1.TestShiroServlet.doPost(TestShiroServlet.java:24)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> at
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
> at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
>
> at
> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:373)
>
> at
> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:306)
>
> at
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81)
>
> at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>
> at
> com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:51)
>
> at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>
> at
> com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
>
> at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>
> at
> com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:121)
>
> at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
>
> at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
> at
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> at
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> at
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
> at
> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
> at
> com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70)
>
> at
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
> at
> com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:352)
>
> at
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
> at org.mortbay.jetty.Server.handle(Server.java:313)
> at
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
> at
> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844)
>
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
> at
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
> at
> org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.