Spring 5 WebSecurityConfigurerAdapter - автоматическое управление транзакциями игнорируется - PullRequest
0 голосов
/ 15 марта 2020

Уважаемые все, я использую стандартное веб-приложение Spring 5 без загрузки Spring. Который также использует Spring Security с помощью WebSecurityConfigurerAdapter и UserDetailsService.

Мой UserDetailsService использует классы обслуживания и использует некоторые из моих классов репозитория, что приводит к тому, что JPA Persistence инициализируется.

Поскольку я реализовал WebSecurityConfigurerAdapter Я понял, что автоматическое управление транзакциями игнорируется, что означает, что @EnableTransactionManagement, а также аннотация @Transactional, похоже, не действуют. Если я не использую пружинную защиту, тогда мое приложение отлично работает с автоматизированным управлением транзакциями.

Не поддерживается ли автоматическое управление транзакциями в контексте WebSecurityConfigurerAdapter?

Какова здесь лучшая практика, значит, существует способ объединить контекст приложения и WebSecurityConfigurerAdapter или мне нужно ограничить / изолировать мой UserDetailsService, чтобы другие ненужные классы службы и JPA-хранилища не загружались / не инициализировались?

Я пытался использовать следующий код, но, как уже упоминалось, он не работает

@Configuration
@ComponentScan(basePackages = { ... })
@EnableTransactionManagement
public abstract class AbstractCoreWebSecurityConfiguration extends WebSecurityConfigurerAdapter {

@Autowired
private UserDetailsService userDetailsService;

@Bean
public JpaTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) {
    return new JpaTransactionManager(entityManagerFactory);
}
...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...