[ 
http://jira.jboss.com/jira/browse/JBPORTAL-184?page=comments#action_12314818 ]
     
Ivelin Ivanov commented on JBPORTAL-184:
----------------------------------------

The "Affects version/s" is set to 2.0 Beta, but the "Fix Version/s" is blank. 
Is it intentional? Only when "Fix version/s" is set a feature will show in the 
roadmap and release notes.

> Remember me feature
> -------------------
>
>          Key: JBPORTAL-184
>          URL: http://jira.jboss.com/jira/browse/JBPORTAL-184
>      Project: JBoss Portal
>         Type: Feature Request
>   Components: Portal Core
>     Versions: 2.0 Beta
>     Reporter: Julien Viet

>
> Original Estimate: 1 day
>         Remaining: 1 day
>
> - remember me feature - 
> Login process in the portal. 
> Introduction 
> In order to have the portal play nice with J2EE security it is not possible 
> to use directly the JBossSX API or the JAAS API. The reasons are various : 
> - specific to JBoss 
> - does not respect the portlet specification 
> - only form login can be used, no client certificate authentication 
> would work 
> - does not take advantage of JBoss SSO or tomcat SSO 
> Therefore the login must be processed by the servlet container. 
> Architecture and login protocol 
> Login in JBoss portal follows a well defined protocol which uses 
> the following elements : 
> - org.jboss.portal.core.security.Status object : defines the status of 
> a user. It is stored in the http session and has the following 
> attributes : username, password and a boolean signedIn. When the 
> user is not logged in the http session does not contains this object. 
> When a user performs a login it contains its username and password 
> and the boolean signedIn is false. The signedIn value 
> becomes true only if the user authenticates succesfully. 
> - LoginServet : this servlet initiates the login protocol. It takes 
> a mandatory user name and password as arguments and 
> an optional redirect url argument. 
> - AuthenticationServlet : this servlet is a protected resource of the 
> portal web application. It means that it can be reached only by 
> fully authenticated users. The role of this servlet is to 
> terminate the login protocol. 
> - FormLoginServlet : this servlet intercepts is used by the servlet 
> container which calls it whenever the user tries to reach 
> the AuthenticationServlet and is not authenticated. 
> The protocol is described now : 
> 1. a request is made with the URL /login?username=foo&password=bar 
> 2. the LoginServlet process the request : 
> 2.a it creates a status object which username, passwords, signedIn 
> value false and put it in the http session 
> 2.b it redirects to the authentication servlet with the URL : 
> /authentication?username=foo&password=bar 
> 3. the user browser receive the redirection and process it 
> 4. the servlet container receives the request and see that the user is 
> not authenticate so it redirect internally the call to the FormLoginServlet 
> 5. the FormLoginServlet process the request, it simply redirects to 
> the URL /j_security_check?j_username=foo&j_password=bar which 
> has a special meaning for the servlet container in the 
> authentication process. 
> 6. the servlet container process the j_security_check URL : 
> 6.a it delegates the authentication to JBossSX which delegates in turns 
> to JAAS LoginModule stack 
> 6.b we suppose that the authentication is succesfull, the servlet 
> container delegates the request to the AuthenticationServlet 
> 6.c the AuthenticationServlet process the request, it sets the 
> boolean signedIn to true on the Status object which is stored in the 
> http session and it optionnally redirects to the optional redirect URL 
> Improvements : 
> We want to add the remember me feature in that protocol. 
> The remember feature authorize a user to not perform a login 
> a second time when it has succesfully authenticated one time in 
> the past. This feature uses the cookies to store a ticket that proves 
> the the user identity. The integration of that feature must not bypass 
> the authentication protocol. When a user arrives on the site with any 
> URL, it must execute the login protocol transparently. 
> The concept used are : 
> The ticket : 
> This object is an authorization ticket. It has the following attributes : 
> - expiration date 
> - a unique hash value 
> - username 
> - password 
> The ticket store : 
> Simply stores tickets. It is possible to create tickets and check 
> ticket validity. It also manage old ticket garbaging. 
> RememberMeServletFilter : 
> This servlet filter is positionned on any URL that own the remember 
> me property. It is responsible for managing the ticket stores 
> cookies. When a user comes in with a ticket cookie, it uses 
> the ticket store to check the cookie validity and if it is valid, it uses 
> the username and password to initiate the login protocol with 
> a redirection URL positionned to the actual incoming URL. 
> StoreTicketFilter : 
> This servlet filter is put in front of the AuthenticationServlet, it means 
> that it will be always executed once 
> the user has been fully authenticated by the servlet container. 
> The role of this filter is to create a ticket in the store for the current 
> user. 
> This approach is non intrusive and does not need modification in the 
> login protocol explained before. It is also simple to remove for 
> people that don't want or need that feature on their portal infrastructure

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://jira.jboss.com/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira



-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
JBoss-Development mailing list
JBoss-Development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to