Author: prabath
Date: Wed Feb 13 04:39:47 2008
New Revision: 13697

Log:

'remember me' functionality added 

Modified:
   
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/OpenIDAuthVerificationAction.java

Modified: 
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/OpenIDAuthVerificationAction.java
==============================================================================
--- 
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/OpenIDAuthVerificationAction.java
 (original)
+++ 
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/OpenIDAuthVerificationAction.java
 Wed Feb 13 04:39:47 2008
@@ -2,6 +2,7 @@
 
 import java.util.Date;
 
+import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
@@ -69,9 +70,46 @@
             // User logs in with user-name/password.
             password = request
                     .getParameter(IdentityProviderConstants.OpenId.PASSWORD);
+
+            if (password == null) {
+                password = (String) session.getAttribute("password");
+
+                if (password != null)
+                    session.removeAttribute("password");
+            }
+
             user = UserUtil.getUserName(openID);
 
             if (UserUtil.doLogin(user, password)) {
+
+                String remeberMe = null;
+
+                if (request.getParameter("remember") != null) {
+                    remeberMe = request.getParameter("remember");
+                }
+
+                if (remeberMe != null && remeberMe.equalsIgnoreCase("true")) {
+                    // Add cookie
+
+                    Cookie rememberMeCookie = new Cookie("rememberme", "true");
+                    // Expires in two weeks
+                    rememberMeCookie.setMaxAge(60 * 60 * 24 * 14);
+                    response.addCookie(rememberMeCookie);
+
+                    Cookie openIDCookie = new Cookie("openid", openID);
+                    openIDCookie.setMaxAge(60 * 60 * 24 * 14);
+                    openIDCookie.setSecure(true);
+                    response.addCookie(openIDCookie);
+
+                    // Encode the password
+                    Cookie passwordCookie = new Cookie("password",
+                            new sun.misc.BASE64Encoder().encode(password
+                                    .getBytes("UTF-8")));
+                    passwordCookie.setMaxAge(60 * 60 * 24 * 14);
+                    passwordCookie.setSecure(true);
+                    response.addCookie(passwordCookie);
+                }
+
                 if (!isRequiredUserApproval(request)) {
                     // User has already agreed to accept request from this RP
                     // always.
@@ -118,7 +156,7 @@
         rpdos = db.getOpenIDUserRP(UserUtil.getUserName(openID), rpUrl);
 
         if (rpdos != null && rpdos.length > 0) {
-            // User has already logged into this RP.            
+            // User has already logged into this RP.
             rpdo = rpdos[0];
             if (rpdo.getIsTrustedAlways()) {
                 // User trusts this RP.

_______________________________________________
Identity-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/identity-dev

Reply via email to