метод configure в Spring Security

241
04 февраля 2020, 02:20

Есть конфиг в Spring Security:

@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(AuthenticationManagerBuilder authBuilder) throws Exception {
        authBuilder
                .userDetailsService(userDetailsService())
                .passwordEncoder(passwordEncoder());
    }
    @Bean
    public BCryptPasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }
    @Bean
    public UserDetailsService userDetailsService() {
        return new CustomUserDetailsService();
    }
}

Далее имплементация интерфейса UserDetailsService:

public class CustomUserDetailsService implements UserDetailsService {
    @Autowired
    private UserRepository userRepository;
    @Override
    public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException {
        User user = userRepository.findByEmail(email);
        if(Objects.nonNull(user)) {
            List<SimpleGrantedAuthority> authorities = user.getRoles().stream()
                    .map(Role::getRole)
                    .map(SimpleGrantedAuthority::new)
                    .collect(Collectors.toList());
            return new CustomUserDetails(user.getId(), email, user.getPassword(), user.isActive(), true,
                    true, true, authorities);
        } else {
            throw new UsernameNotFoundException();
        }
    }
}

Мне не очень понятно какую функцию выполняет именно вариация метода void configure(AuthenticationManagerBuilder authBuilder). Просьба описать пошагово как происходит отработка такой функциональности от точки входа и до конца, то есть нужен такой себе сценарий.

READ ALSO
closing inbound before receiving peer&#39;s close_notify в windows 10 при executeQuery() в Intelliji IDEA

closing inbound before receiving peer's close_notify в windows 10 при executeQuery() в Intelliji IDEA

Я пытаюсь создать выполнение запросов из SQL в Intelliji IDEA через JDBCПри выполнении запроса с компьютера на котором стоит Windows 8, запрос выполняется...

234
многопоточность и файлы в java

многопоточность и файлы в java

Я пытаюсь создать программу, потоки которой считывали бы и изменяли файлВсе это обернул в самописную семафору, которая контролирует доступ...

226
Не могу понять блок кода в реализации LinkedList

Не могу понять блок кода в реализации LinkedList

Дана реализация связанного списка:

256
javax.servlet.ServletException: UT010013

javax.servlet.ServletException: UT010013

Переношу проект со старого сервера (debian 7, wildfly 82

279