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