Обработка индекса 0 за пределами длины 0 для проверки пользовательского метода - PullRequest
0 голосов
/ 09 мая 2020

У меня есть этот метод, который проверяет пользователя, пытающегося войти в веб-приложение, которое я размещаю на Tomcat, и если я ввожу имя пользователя, которого не существует, он дает мне Index 0 out of bounds for length 0 вместо того, чтобы возвращать null и отображать недопустимые учетные данные для входа страница. Как я могу убедиться, что он возвращает null, если имя пользователя не существует?

Проверить метод пользователя:

 public User validateUser(Login login) {

// SQL statement
String sql = "select * from users where username='" + login.getUsername() + "'";
// Running query
List<User> users = jdbcTemplate.query(sql, new UserMapper());
User user = users.get(0);
// Getting encrypted password
String encodedPassword = user.getPassword();
// Getting login password
String rawPassword = login.getPassword();
// Validating them
boolean isPasswordMatch = passwordEncoder.matches(rawPassword, encodedPassword);
if(isPasswordMatch){
    return user;
}
else { 
    return null;
}
}

Контроллер:

@RequestMapping(value = "/loginProcess", method = RequestMethod.POST)
public ModelAndView loginProcess(HttpServletRequest request, HttpServletResponse response,
@ModelAttribute("login") Login login) {
ModelAndView mav = null;
// Validating user
User user = userService.validateUser(login);
if (null != user) {
// Setting view
mav = new ModelAndView("loginProcess", "firstname", user.getFirstname());
// Creating session and saving user
HttpSession httpSession = request.getSession(true);
httpSession.setAttribute("User", user);
}
// Returning invalid credentials
return mav = new ModelAndView("loginIncorrect");
}

1 Ответ

0 голосов
/ 09 мая 2020

Вы можете вернуть null, если длина пользователей равна нулю

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...