moresandeep commented on code in PR #912:
URL: https://github.com/apache/knox/pull/912#discussion_r1601848944


##########
gateway-provider-ha/src/main/java/org/apache/knox/gateway/ha/dispatch/ConfigurableHADispatch.java:
##########
@@ -121,9 +123,16 @@ public void init() {
     /* setup the active URL for non-LB case */
     activeURL.set(haProvider.getActiveURL(getServiceRole()));
 
-    // Suffix the cookie name by the service to make it unique
-    // The cookie path is NOT unique since Knox is stripping the service name.
-    stickySessionCookieName = stickySessionCookieName + '-' + getServiceRole();
+    // TODO I'm not sure that appending the role to the cookie name (or the 
alternative of setting the correct cookie path)
+    // is really necessary.
+    // Knox sets a single session cookie for a topology, and I don't see how 
that would be used for multiple services.
+    // I think only a seriously broken client would mix up the sticky cookies, 
and even then
+    // Knox would drop any sticky cookie that does not point to a proper 
backend.
+    if (!useRoutesForStickyCookiePath) {

Review Comment:
   i see what you are trying to do, if routes are set then scope the cookie 
based on path. There are few problems with this approach. 
   We have default topology feature 
(https://knox.apache.org/books/knox-1-1-0/user-guide.html#Default+Topology+URLs)
 where services do not need to specify context, we do that for CM. Not  sure 
how this will be impacted. 
   Debugging would be tricky with this given cookies names won't be intuitive.  



##########
gateway-provider-ha/src/main/java/org/apache/knox/gateway/ha/dispatch/ConfigurableHADispatch.java:
##########
@@ -121,9 +123,16 @@ public void init() {
     /* setup the active URL for non-LB case */
     activeURL.set(haProvider.getActiveURL(getServiceRole()));
 
-    // Suffix the cookie name by the service to make it unique
-    // The cookie path is NOT unique since Knox is stripping the service name.
-    stickySessionCookieName = stickySessionCookieName + '-' + getServiceRole();
+    // TODO I'm not sure that appending the role to the cookie name (or the 
alternative of setting the correct cookie path)
+    // is really necessary.

Review Comment:
   This is needed because a topology can have multiple services and those 
services can have sticky enabled and disabled. So, a topology can have one 
service with sticky session ON and other with OFF. This is the reason for 
appending the service name.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@knox.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to