#spring #spring-security #spring-session
#spring #spring-security #весенняя сессия
Вопрос:
Команда
Просто пытаюсь перенести Spring Security с 3.1.2.RELEASE на 5.1.4.RELEASE. Мы используем конфигурацию на основе xml и проверяем, есть ли какие-либо ссылки, которые помогают мне в этом действии.
Я внес изменения и решил большинство проблем во время выполнения, за исключением приведенной ниже. Я полагаю, что он также не вызывает службу сведений о пользователе.
SecurityContextPersistenceFilter: с нетерпением созданный сеанс: a4931bcd-f260-4382-ad88-46237bed8fce 10:43:35,192 INFO [стандартный вывод] (http-/ 127.0.0.1: 8080-3) http-/127.0.0.1:8080-3 — [2019-03-15 10:43:35,192] — DEBUG — HttpSessionSecurityContextRepository: HttpSession вернул нулевой объект для SPRING_SECURITY_CONTEXT 10:43:35,192 INFO [стандартный вывод] (http-/127.0.0.1: 8080-3) http-/127.0.0.1:8080-3 — [2019-03-15 10:43:35,192] — DEBUG — HttpSessionSecurityContextRepository: Никакой SecurityContext не был доступен из HttpSession: org.springframework.session.web.http.SessionRepositoryFilter $ SessionRepositoryRequestWrapper $ HttpSessionWrapper @32436149. Будет создан новый.
Ниже приведена конфигурация, которую я ввел в наш код.
<bean id="securityContextRepository"
class="org.springframework.security.web.context.HttpSessionSecurityContextRepository" />
Ценю любую помощь по этому поводу. Заранее спасибо.
С уважением, Рави
Ответ №1:
Для первого шага, пожалуйста, обратитесь к Руководству по миграции для обновления Spring Security с 3 по 4. Тогда переход на Spring Security 5 — это довольно небольшой шаг и в основном касается переноса паролей.
Комментарии:
1. Большое вам спасибо за ответ. Фактически, я следовал той же документации для этой миграции. Все выглядит хорошо, но каким-то образом SecurityContext не сохраняется в сеансе.
2. Ниже приведены сведения о конфигурации, которые я привел в нашем коде. <идентификатор компонента=»securityContextFilter» class=»org.springframework.security.web.context.SecurityContextPersistenceFilter»> <ссылка на конструкторский аргумент=»securityContextRepository» /> <имя свойства=»forceEagerSessionCreation» value=»true» /> </bean> <идентификатор компонента=»securityContextRepository» class=»org. springframework.безопасность.веб.контекст.HttpSessionSecurityContextRepository» />
3. Не могли бы вы, пожалуйста, указать это в своем первоначальном вопросе, что у всех есть вся необходимая информация, необходимая, чтобы помочь вам?
4. Добавил детали в мой первоначальный вопрос.
5. Проблема, связанная с сессией, была решена. Кажется, мой модуль war не получил последние версии jar. Начал собирать все модули, затем он работал с той же конфигурацией.