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