ResourceResolver objects may remain unclosed after handleSecurity
-----------------------------------------------------------------

                 Key: SLING-1716
                 URL: https://issues.apache.org/jira/browse/SLING-1716
             Project: Sling
          Issue Type: Bug
          Components: Authentication
    Affects Versions: Auth Core 1.0.2
            Reporter: Felix Meschberger
            Assignee: Felix Meschberger
             Fix For: Auth Core 1.0.4


The SlingAuthenticator.handleSecurity method extracts credentials from the 
request (with the help of AuthenticationHandlers). Using these credentials, a 
ResourceResolver is created, presumably for use during request processing.

After successfully creating the resource resolver 
AuthenticationFeedbackHandler.authenticationSucceeded is called. This method 
may redirect the request and return true to indicate the request should be 
terminated. Likewise the DefaultFeedbackHandler can do the same.

If such a feedback handler decides to redirect the request after successfully 
creating the ResourceResolver, false is returned from the handleSecurity method 
to indicate to the OSGi HttpService to consider authentication failed and to 
terminate the request.

In this situation, the ResourceResolver is not closed and will only eventually 
be closed thanks to the finalize() method implemented.

This is not a good situation, though, and the handleSecurity method (or one of 
the ResourceResolver factory methods in the SlingAuthenticator) should close 
the ResourceResolver if the request should be terminated.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to