Отвечая на мой собственный вопрос: я искал источники весенней загрузки (v1.5.13.RELEASE и v2.0.2.RELEASE) с grep
- без результатов.
По крайней мере, в этих версиях у вас естьсоздать пользовательский DaoAuthenticationProvider
, если вы хотите использовать дополнительные проверки до или после проверки подлинности.
Редактировать: Фраза "вам нужно создать пользовательский DaoAuthenticationProvider
" немного вводит в заблуждение.В недавнем проекте я сделал это следующим образом:
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class WebSecurityConfig {
@Autowired
public void configureGlobal(
AuthenticationManagerBuilder auth,
MyUserAccountService myUserAccountService,
PasswordEncoder passwordEncoder,
MessageSourceAccessor messageSourceAccessor
) throws Exception {
DaoAuthenticationProvider daoAuthenticationProvider = new DaoAuthenticationProvider();
daoAuthenticationProvider.setPasswordEncoder(passwordEncoder);
daoAuthenticationProvider.setUserDetailsService(myUserAccountService);
daoAuthenticationProvider.setPostAuthenticationChecks(new UserAccountChecker(messageSourceAccessor));
auth.authenticationProvider(daoAuthenticationProvider);
auth.userDetailsService(myUserAccountService).passwordEncoder(passwordEncoder);
}
[...]
}
Здесь UserAccountChecker implements UserDetailsChecker
- это класс, в котором (после) проверки подлинности проходят (также см. Класс DefaultPostAuthenticationChecks
в * 1013).*).