cancel
Showing results for 
Search instead for 
Did you mean: 

saplb_* cookie and HttpServletResponse.encodeRedirectURL()

Former Member
0 Kudos

G'day,

I have a web app that is calling HttpServletResponse.encodeRedirectURL() and I am getting a SAP load balancing cookie put into the URL.

The URL is of the form "https://<location>?<query>" and when passed through the encodeRedirectURL() method this URL is converted to the form "https://<location>;saplb_*=(J2EExxx)xxx?<query>".

The same URL is returned when passed through encodeURL() method.

However when this URL is used by the client browser a 404 is returned. If I remove the SAP cookie "saplb_=(J2EExxx)xxx" then the page loads successfully. Similarly if I manually change the URL to "https://<location>?<query>;saplb_=(J2EExxx)xxx".

I am assuming here that the SAP cookie should be after the "?" in the URL, not before it. I guess that by appearing before the "?" the web server treats the cookie as part of the location, not a parameter.

The HttpServletResponse class is com.sap.engine.services.servlets_jsp.server.runtime.client.HttpServletResponseFacade and I am using Netweaver 2004s Java SP9.

Is there any way I can configure Netweaver to not put the saplb_* cookie value in the URL (by disabling load balancing perhaps?) or to get the cookie value put after the "?" in the URL?

--Geoff

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Actually, looking at the RFCs for URL spec again, I guess the SAP cookie can appear before the "?", as it is part of the hierarchical path.

But the problem here is that this URL is not sent to a SAP-aware web server (I am testing federation so the initial request to a web-app in one domain is redirected to a different domain), so the SAP load-balancing cookie is meaningless.

I installed Netweaver as "local installation", so maybe NW thinks all requests are managed by NW and it is safe to put SAP cookies in the URL?

--Geoff