Author: prabath
Date: Thu Feb 14 04:01:29 2008
New Revision: 13761

Log:

remember information card login to OpenID Provider

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/OpenIDAuthenticationAction.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
 Thu Feb 14 04:01:29 2008
@@ -55,6 +55,17 @@
         if (infoCardSignin != null && "Log in".equals(infoCardSignin)) {
             // User logs in with an information card
             if (UserUtil.verifyInfoCardLogin(context, openID)) {
+
+                // Okay - user used InfoCards to login - next when tries login
+                // we'll let him use his InfoCard directly, by passing the
+                // authentication page.
+
+                // Encode the password
+                Cookie infocardCookie = new Cookie("infocardCookie", openID);
+                infocardCookie.setMaxAge(60 * 60 * 24 * 14);
+                infocardCookie.setSecure(true);
+                response.addCookie(infocardCookie);
+
                 if (!isRequiredUserApproval(request)) {
                     // User has already agreed to accept request from this RP
                     // always.
@@ -63,6 +74,23 @@
                 }
                 return SUCCESS;
             } else {
+
+                Cookie[] cookies = request.getCookies();
+                Cookie curCookie = null;
+                String useInfoCard = null;
+
+                for (int x = 0; x < cookies.length; x++) {
+                    curCookie = cookies[x];
+                    if 
(curCookie.getName().equalsIgnoreCase("infocardCookie")) {
+                        useInfoCard = curCookie.getValue();
+
+                        if (useInfoCard != null && useInfoCard.equals(openID)) 
{
+                            curCookie.setMaxAge(0);
+                            response.addCookie(curCookie);
+                        }
+                    }
+                }
+
                 this.addErrorMessage(getText("invalid_card_login"));
                 return ERROR;
             }

Modified: 
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/OpenIDAuthenticationAction.java
==============================================================================
--- 
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/OpenIDAuthenticationAction.java
   (original)
+++ 
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/OpenIDAuthenticationAction.java
   Thu Feb 14 04:01:29 2008
@@ -44,6 +44,7 @@
         boolean remembereme = false;
         String openidurl = null;
         String password = null;
+        String useInfoCard = null;
 
         if (cookies != null) {
 
@@ -57,16 +58,23 @@
                 } else if (curCookie.getName().equalsIgnoreCase("password")) {
                     password = new String(new sun.misc.BASE64Decoder()
                             .decodeBuffer(curCookie.getValue()), "UTF-8");
+                } else if (curCookie.getName().equalsIgnoreCase(
+                        "infocardCookie")) {
+                    useInfoCard = curCookie.getValue();
                 }
             }
 
+            if (useInfoCard != null && useInfoCard.equals(openID)) {
+                response.sendRedirect("OpenIDSelfIssuedLogin.action");
+                return SUCCESS;
+            }
+
             if (remembereme && openidurl != null && openidurl.equals(openID)
-                    && password != null) {           
+                    && password != null) {
                 session.setAttribute("password", password);
                 response.sendRedirect("OpenIDAuthVerification.action");
             }
         }
-
         return SUCCESS;
     }
 

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

Reply via email to