[ 
https://issues.apache.org/jira/browse/SLING-1116?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12806869#action_12806869
 ] 

Eric Norman commented on SLING-1116:
------------------------------------

Thanks Felix.  Your comments seem reasonable.  I have attached an updated patch 
for review.

* One bundle now handles both cookie (default) and session storage for the auth 
hash.  Configurable from the web console.

* You are correct that the changes in SLING-1314 is helpful to delay the 
setting of the cookie.  The attached patch uses this technique so it requires 
the patch from SLING-1314 to be applied first.

* SessionAuth: I removed the session.invalidate() and just remove the 
credentials attribute when dropping credentials.  

* The implementation now generates a more complex hash [1].  A custom 
LoginModulePlugin implementation is used to verify the supplied hash value 
matches what was expected.   The changes in 
SLING_1116_jackrabbit_server_patch.txt (attached) were required to get the 
login process to accept the custom credentials object.

[1] Auth hash pseudo-code:
        HA1 = MD5(username : realm : cryptedPassword)
        HA2 = MD5(HttpServletRequest.getRemoteAddress() : 
AuthenticationHandler.PATH_PROPERTY)
        authHash = MD5(HA1 : HA2)


Thoughts?


> FORM Based Authentication
> -------------------------
>
>                 Key: SLING-1116
>                 URL: https://issues.apache.org/jira/browse/SLING-1116
>             Project: Sling
>          Issue Type: New Feature
>          Components: Extensions
>            Reporter: Eric Norman
>            Assignee: Felix Meschberger
>         Attachments: org.apache.sling.cookieauth.zip, 
> org.apache.sling.sessionauth.zip, SLING_1116_jackrabbit_server_patch.txt, 
> updated_org.apache.sling.cookieauth.zip
>
>
> This is a new bundle that provides an implementation of forms based 
> authentication for sling.
> The login/logout servlets from the org.apache.sling.commons.auth are used.
> The AuthenticationHandler will use http basic auth credentials if they are on 
> the request, otherwise it will use the user/pwd posted from the login form.
> The login form html is generated by a set of scripts
> 1. login.html.esp     - full login page (includes login_body.html.esp for the 
> form markup)
> 2. login_body.html.esp   - just the login form, which may be useful for 
> drawing the login form for an ajax context
> 3. loginError.html.esp   - full login-error page
> 4. loginError_body.html.esp  - just the login-error form, for login error in 
> ajax context
> The above scripts are included as bundle-resources @ 
> /libs/sling/servlet/default
> The bundle also has a couple of test scripts to show some examples of usage:
> 1. loginTest.html.esp  - shows who is logged in and links to login or logout
> 2. loginTest2.html.esp - shows how a script can check permissions and show a 
> login page if the anonymous user doesn't have permission to see the page,
> Some examples of usage are:
> 1. http://host:port/path/to/node.login.html   - show the login page and then 
> goto http://host:port/path/to/node after  authenticated
> 2. http://host:port/path/to/node.login.html?s=.edit.html   - show the login 
> page and then goto http://host:port/path/to/node.edit.html after  
> authenticated
> 3. http://host:port/system/sling/logout  - invalidate the session and switch 
> back to anonymous user

-- 
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