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