[ 
https://issues.apache.org/jira/browse/SHIRO-266?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13058223#comment-13058223
 ] 

Les Hazlewood commented on SHIRO-266:
-------------------------------------

Latest commit has the following changes:

- The DefaultSessionStorageEvaluator has been changed to allow usage of the 
Session by default if one already exists.  If one does not exist, only then is 
the isSessionStorageEnabled() class-level property consulted.  It didn't make 
sense to not use the session if the application developer has already created 
one (by calling subject.getSession() somewhere in their own code).

- New web-specific objects have been introduced to enable most web applications 
to receive enabling/disabling benefits simply by request-specific 
configuration.  For example, a new 'NoSessionCreationFilter' has been 
introduced (in the pool of Default Filters as 'noSession').  This can be used 
in Shiro's filter chains, for example, in shiro.ini:

[urls]
/rest/** = noSession, authcBasic

The 'noSession' filter triggers logic that will prevent both Shiro and 
application developers from calling subject.getSession() and 
subject.getSession(true) for request patterns that should be stateless (no 
sessions).

A new DefaultWebSessionStorageEvaluator has been introduced that retains the 
DefaultSessionStorageEvaluator parent class logic, but will additionally look 
for a request attribute (set by the 'noSession' filter) to trigger this 
request-specific subject enable/disable logic.  The DefaultWebSecurityManager 
enables this DefaultWebSessionStorageEvaluator by default.

Finally, more unit tests have been added.  DefaultWebSessionStorageEvaluator 
has 100% method/line coverage.


> Login/Logout: Enable pluggable Subject state binding
> ----------------------------------------------------
>
>                 Key: SHIRO-266
>                 URL: https://issues.apache.org/jira/browse/SHIRO-266
>             Project: Shiro
>          Issue Type: Improvement
>          Components: Session Management, Subject
>    Affects Versions: 1.0.0, 1.1.0, 1.1.1
>            Reporter: Les Hazlewood
>            Assignee: Les Hazlewood
>             Fix For: 1.2.0
>
>
> After login, a subject's state (principals, authentication state, etc) are 
> bound to the Subject's session.  This allows Shiro to reconstruct the Subject 
> instance later on by acquiring a Session (e.g. by id) and reconstructing the 
> Subject based on the Session's state.
> In stateless environments (e.g. some REST-enabled applications), it is not 
> desirable to create a session.  There should be a pluggable component that 
> performs state binding and unbinding for subject login and logout, 
> respectively.  Stateless applications can choose to configure Shiro with a 
> stateless binder if they don't want sessions to be created.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to