Why the sessionid in the cookie of the spring session browser is different from the sessionid obtained by the server
Why is the sessionid in the cookie of the spring session browser different from the sessionid obtained by the server? for this question, this article introduces the corresponding analysis and solutions in detail, hoping to help more partners who want to solve this problem to find a simpler and easier way.
The sessionId stored in the browser cookie is encoded by base64, while the sessionId obtained on the server is not encoded. The decoding in cookie is actually consistent with that on the server. The key here is that spring session is set when setting cookie. You can see the writeCookieValue method in the source code DefaultCookieSerializer class, where there is a key piece of code.
Cookie sessionCookie = new Cookie (this.cookieName, this.useBase64Encoding?base64Encode (actualCookieValue): actualCookieValue)
In the member variable of the class, it is specified directly.
Private boolean useBase64Encoding = true
Solution: just inject this class directly to replace it
@ Beanpublic DefaultCookieSerializer getDefaultCookieSerializer () {DefaultCookieSerializer cookieSerializer = new DefaultCookieSerializer (); cookieSerializer.setUseBase64Encoding (false); return cookieSerializer;} this is the answer to the question about why the sessionid in the cookie of the spring session browser is different from the sessionid obtained by the server. I hope the above content can be of some help to you. If you still have a lot of doubts to be solved, you can follow the industry information channel for more relevant knowledge.