[
https://issues.apache.org/jira/browse/SLING-1116?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12767114#action_12767114
]
Eric Norman commented on SLING-1116:
------------------------------------
Ian makes some good points. I experimented a little with storing the
credentials in the repository, but ran into many concurrency issues trying to
keep track of when the stored credentials are stale.
As an alternative, I refactored my previous patch to provide two ways to do
form based authentication:
1. org.apache.sling.sessionauth - this bundle uses http sessions where the auth
credentials are cached on the server-side as a session attribute
2. org.apache.sling.cookieauth - this bundle gets/sets the auth credentials
from the value of a cookie (password is encrypted in the cookie value).
The above satisfies my needs for now. I would like to hear the thoughts of the
community regarding if there are better ways to harden the value of the
cookieauth so the user/password stored in the cookie value are not open to
attack.
> 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
> Attachments: org.apache.sling.cookieauth.zip,
> org.apache.sling.sessionauth.zip
>
>
> This is a new bundle that provides an implementation of forms based
> authentication for sling.
> There are two servlets:
> 1. LoginServlet - bound to /session/login
> 2. LogoutServlet - bound to /session/logout
> The FormAuthenticationHandler will use http basic auth credentials if they
> are on the request. If there is no basic auth header, it will use attempt to
> use cached credentials stored on the server side by the LoginServlet.
> 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/session/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.