Concurrency issue with the runAs principles stored in the Session object
------------------------------------------------------------------------

                 Key: SHIRO-355
                 URL: https://issues.apache.org/jira/browse/SHIRO-355
             Project: Shiro
          Issue Type: Bug
          Components: Subject
    Affects Versions: 1.2.0
            Reporter: Marinus Geuze
            Priority: Minor


Hi,

I am using the runAs functionality of Shiro. However I think that there is a 
design flaw in the implementation. Because the runAs principles are stored in 
the Session object. However when a user does a second request to the server, 
while the first request to the server is still running, then there is a 
concurrency issue with the stored runAs principles.

This issue caused problems in our application which used JSF2.0 frontend.

Therefore I have overridden the default behavior of the 
org.apache.shiro.subject.Subject class, by implementing our own Subject class. 
This class stores the runAs principles in the servletRequest object.  The 
concurrency issue is thereby fixed. See mine implementation in the attachment.

Am I right that the current session implementation is incorrect? If so, please 
fix this bug. If not, is it an idea to make this a configuration choice in 
Shiro by using a storeRunAsPrinciplesInSession or 
storeRunAsPrincipleInServletRequest indicator?

Greets,
Marinus

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to