Spring Session JDBC 1.2.0 в Spring Boot 1.3.5

когда я использую стартер весеннего сеанса для весенней загрузки 1.3.5 и устанавливаю версию для весеннего сеанса на 1.2, возникают конфликты. Кажется, что это несовместимо, и я должен ждать загрузки 1.4. ХОРОШО...

Чтобы запустить его, я просто добавил зависимость к весенней сессии 1.2 без стартера и добавил класс, который расширяет AbstractHttpSessionApplicationInitializer. Это работает, когда я запускаю его во внешнем коте, но не когда я запускаю его во встроенном коте загрузки 1.3.5.

Могу ли я использовать SS 1.20 в SB 1.3.5?

Спасибо

Шаг вперед

Authentication auth = SecurityContextHolder.getContext().getAuthentication();
    if(auth == null || !(auth.getPrincipal() instanceof UserDetailsImpl)) 
        return null; 
    ...

Здесь всегда возвращается null, хотя auth.getPrincipal() является экземпляром UserDetailsImpl. Кажется, проблема с загрузчиком классов. Но почему это работает во внешнем коте? Любые другие стратегии загрузки классов здесь?


person Ickbinet    schedule 29.06.2016    source источник
comment
Пожалуйста, уточните, что именно вы подразумеваете под стартером весенней сессии, поскольку Spring Boot (пока) не предлагает начальный модуль для Spring Session.   -  person Vedran Pavic    schedule 30.06.2016
comment
Извините, это был starter-jdbc, как упоминалось здесь: docs.spring.io/spring-session/docs/1.2.0.RELEASE/reference/   -  person Ickbinet    schedule 30.06.2016


Ответы (1)


Вкратце: да, вы можете без проблем использовать Spring Session 1.2.x с Spring Boot 1.3.x.

Проект Spring Session содержит множество примеров, которые помогут пользователям начать работу с Spring. Session (документация по этим примерам доступна здесь< /а>). Среди этих примеров есть и тот, который напоминает ваш вариант использования — Загрузить образец JDBC.

Как показано в примерах и документах следует использовать аннотацию @EnableJdbcHttpSession для начальной загрузки поддержки Spring Session JDBC. Если ваше приложение по какой-то причине также использует Redis, вам следует исключить SessionAutoConfiguration, предоставленный Spring Boot 1.3, поскольку ваша комбинация зависимостей вызовет автоматическую настройку Spring Session, поддерживаемого Redis, чего вы не хотите, если хотите например, использовать хранилище сеансов с поддержкой JDBC.

person Vedran Pavic    schedule 30.06.2016
comment
Я использовал этот документ: docs.spring.io/spring-session/docs/1.2.0.RELEASE/reference/. Когда я добавляю эти зависимости, аннотация @EnableJdbcHttpSession отсутствует, поскольку отсутствует весь jar сеанса jdbc. Когда я добавляю всю зависимость spring-session 1.2, а не только session-jdbc, тогда все есть, но работает не во встроенном tomcat. В примере github.com /spring-projects/spring-session/tree/1.2.0.RELEASE/ Я не вижу никакой зависимости от весенней сессии, но ладно, я понятия не имею, как работает gradle... - person Ickbinet; 30.06.2016
comment
Насколько я понимаю: добавьте зависимость к session-jdbc, добавьте @EnableJdbcHttpSession, и он должен работать из коробки. - person Ickbinet; 30.06.2016
comment
Не могли бы вы собрать образец, воспроизводящий вашу проблему, и поделиться им с помощью Github? Также обратите внимание, что идентификатор артефакта spring-session-jdbc, а не session-jdbc. - person Vedran Pavic; 02.07.2016
comment
Другое дело — вы случайно не добавляете зависимости в проект вручную, а не полагаетесь на Maven или Gradle для обеспечения управления зависимостями? Если это так, взгляните на эту проблему, о которой недавно сообщалось в Spring Session. . - person Vedran Pavic; 20.07.2016