Я пытаюсь включить SpringSession в свое приложение, но я также хочу сохранить привязку к серверу, поскольку у меня есть задания Talend, для которых требуются липкие сеансы.
Я могу заставить SpringSession с Redis работать по своему усмотрению, и для того, чтобы сродство к серверу работало, я хочу добавить jvmRoute к сеансу в новом Cookie.
В моем файле конфигурации я создаю следующий bean в соответствии с документами https://docs.spring.io/spring-session/docs/current/reference/html5/guides/java-custom-cookie.html
@Bean
public CookieSerializer cookieSerializer() {
DefaultCookieSerializer serializer = new DefaultCookieSerializer();
serializer.setCookieName("JSESSIONID");
serializer.setJvmRoute("my-app1");
return serializer;
}
Это переименовывает SESSION в JSESSIONID, поэтому я знаю, что он работает, но он не добавляет jvmRoute к sessionId.
Я что-то упустил? Любая помощь будет оценена по достоинству.
Спасибо




Если вы смотрите на фактическое значение файла cookie сеанса и надеетесь увидеть добавленный к нему настроенный jvmRoute, имейте в виду, что начиная с Spring Session 2.0 DefaultCookieSerializer по умолчанию использует файлы cookie в кодировке Base64.
Таким образом, jvmRoute фактически добавляется к идентификатору сеанса, но вся конкатенация получает кодировку Base64 перед записью в cookie.
Чтобы проверить jvmRoute, вы можете попробовать протестировать с помощью DefaultCookieSerializer, сконфигурированного с serializer.setUseBase64Encoding(false).
Я отправил ответ на ваш другой вопрос. Поскольку вы не приняли этот ответ, осталось ли что-нибудь, что требует дальнейшего объяснения?
Извините, забыл принять ответ. Спасибо большое
Это была моя проблема. поэтому я сделал именно то, что вы сказали, и это сработало. Однако сейчас я столкнулся с другой проблемой, о которой я спросил здесь stackoverflow.com/questions/51868693/…