Author: jleroux
Date: Mon Jan 14 13:53:18 2019
New Revision: 1851247
URL:
http://svn.apache.org/viewvc?rev=1851247&view=revLog:
Fixed: User's name is displayed on ecommerce even after user logs out
(OFBIZ-10666)
On further investigation, I found that cookie path and domain are different
in the methods of creating the auto-login cookie i.e. LoginWorker.autoLoginSet()
and removing the auto-login cookie i.e. LoginWorker.autoLoginRemove().
After following changes the issue seems to be fixed:
1. Removed getMaxAge() check from the condition used in
LoginWorker.getAutoUserLoginId() method.
2. Corrected the path and domain in the method LoginWorker.autoLoginRemove().
Thanks: Deepak Nigam for discussion and fix
Modified:
ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/LoginWorker.java
Modified: ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/LoginWorker.java
URL:
http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/LoginWorker.java?rev=1851247&r1=1851246&r2=1851247&view=diff==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/LoginWorker.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/LoginWorker.java Mon Jan 14 13:53:18 2019
@@ -975,8 +975,7 @@ public class LoginWorker {
}
if (cookies != null) {
for (Cookie cookie: cookies) {
- if (cookie.getName().equals(getAutoLoginCookieName(request))
- && cookie.getMaxAge() > 0) {
+ if (cookie.getName().equals(getAutoLoginCookieName(request))) {
autoUserLoginId = cookie.getValue();
break;
}
@@ -1052,9 +1051,11 @@ public class LoginWorker {
// remove the cookie
if (userLogin != null) {
+ Delegator delegator = (Delegator) request.getAttribute("delegator");
Cookie autoLoginCookie = new Cookie(getAutoLoginCookieName(request), userLogin.getString("userLoginId"));
autoLoginCookie.setMaxAge(0);
- autoLoginCookie.setPath("/");
+ autoLoginCookie.setDomain(EntityUtilProperties.getPropertyValue("url", "cookie.domain", delegator));
+ autoLoginCookie.setPath("/" + UtilHttp.getApplicationName(request));
response.addCookie(autoLoginCookie);
}
// remove the session attributes