Пытался. Все еще пустое имя пользователя

оеUserDetailService:

public class StockUserDetailService implements UserDetailsService {
    @Autowired
    private UserRepository userRepository;
    private static final Logger logger = Logger.getLogger(StockUserDetailService.class);
    @Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
        logger.debug("entering loadByUserName");
        // MongoDatabase database = mongoClient.getDatabase("springsecurity");
        User user = userRepository.findOne(username);
        logger.debug("this is teh user ibzect ="+user);
        if (user == null) {
            logger.info("----------------------------------------------user name is "+username);
            throw new UsernameNotFoundException("NAT FOUND");
        }
        return user;
    }
}

Ноusername аргумент всегда приходит какnull, Я видел тонны других сообщений на Stackoverflow с той же проблемой. Некоторые из них говорят, что это потому, чтоusername а такжеpassword как часть заголовков HTTP, а не JSON.

Но я не думаю, что это правда, потому что страница входа в Spring Boot по умолчанию имеет простую форму, которая делаетPOST запросить/login, Что я и делаю

Я не понимаю проблему здесь.

PS: я настроилusername а такжеpassword ключевые имена правильно:

protected void configure(HttpSecurity http) throws Exception {
    http
        .csrf().disable()
        .authorizeRequests()
            .antMatchers("/signup**").permitAll()
            .antMatchers("/login/**").permitAll()
            .antMatchers("/logout/**").permitAll()
            .and()
        .authorizeRequests()
            .antMatchers("/admin/**").hasAuthority("ADMIN")
            .and()
        .formLogin()
            .usernameParameter("username").
            .passwordParameter("password");
}

Ответы на вопрос(2)

Ваш ответ на вопрос