В моем пользовательском провайдере аутентификации я смог получить объект домена через мой Service API, но когда я сканировал один объект домена на другой, чтобы получить определенное значение для выполнения дополнительных проверок, Spring жалуется, что сеанс Hibernate не существует : -
domain.getAnotherDomain().getProperty(); // epic FAIL
У меня есть следующая транзакция AOP, чтобы обернуть все мои API проекта в транзакцию, и я почти уверен, что мой пользовательский поставщик аутентификации попадает в следующую схему: -
<tx:advice id="txAdvice">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:advisor pointcut="execution(* my.project..*.*(..))" advice-ref="txAdvice" />
</aop:config>
У меня также настроен фильтр OpenSessionInView, но я не думаю, что это так или иначе относится к Spring Security.
Полагаю, я могу создать специальный API службы для выполнения всех необходимых проверок, но мне любопытно, почему я не могу обернуть своего провайдера аутентификации в правильную транзакцию.
Есть объяснения? Спасибо.