2016-06-29 5 views
0

, когда я использую стартовый стартер для весенней загрузки 1.3.5 и устанавливаю версию для весенней сессии в 1.2, это приводит к конфликтам. Кажется, что он несовместим, и я должен ждать загрузки 1.4. OK ...Весенняя сессия JDBC 1.2.0 в Spring Boot 1.3.5

Чтобы запустить его, я просто добавил зависимость от весенней сессии 1.2 без стартера и добавил класс, который расширяет AbstractHttpSessionApplicationInitializer. Это работает, когда я запускаю его во внешнем tomcat, но не тогда, когда я запускаю его во встроенном tomcat загрузки 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. Кажется, проблема с загрузчиком. Но почему это работает во внешнем коте? Какие-либо другие стратегии загрузки классов здесь?

+0

Просьба уточнить, что именно вы имеете в виду в сеансе _spring starter_, поскольку Spring Boot пока не предлагает стартовый модуль для Spring Session. –

+0

Извините, это был стартер-jdbc, как упоминалось здесь: http://docs.spring.io/spring-session/docs/1.2.0.RELEASE/reference/html5/guides/httpsession-jdbc-boot.html – Ickbinet

ответ

0

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

Проект Spring Session содержит many samples, чтобы помочь пользователям начать сеанс Spring (имеется документация по этим образцам here). Среди этих образцов также есть тот, который напоминает ваш прецедент - Boot JDBC sample.

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

+0

I использовал этот документ: http://docs.spring.io/spring-session/docs/1.2.0.RELEASE/reference/html5/guides/httpsession-jdbc-boot.html. Когда я добавляю эти зависимости, аннотация @EnableJdbcHttpSession отсутствует, так как отсутствует вся сессия jsbc session-jdbc. Когда я добавляю всю зависимость Spring-session 1.2, а не только session-jdbc, тогда все есть, но работает не во встроенном tomcat. В примере https://github.com/spring-projects/spring-session/tree/1.2.0.RELEASE/samples/httpsession-jdbc-boot Я не вижу зависимости от весенней сессии, но хорошо, я понятия не имею как работает gradle ... – Ickbinet

+0

Мое понимание: Добавить зависимость от session-jdbc, добавить @EnableJdbcHttpSession, и она должна работать из коробки. – Ickbinet

+0

Не могли бы вы собрать образец, который воспроизводит вашу проблему и делится ею с помощью Github? Также обратите внимание, что артефакт id 'spring-session-jdbc', а не' session-jdbc'. –