这是来自我的 spring mvc web 应用程序的登录屏幕。我需要捕获所有可能的错误条件并存储到数据库中。就像错误检测系统一样。
例如,如果用户在未填写表单的情况下单击登录按钮,则任何提供的错误条件都不应保存在错误表中。
如果它没有提供密码,它应该保存未提供的密码。
@RequestMapping(value = { "/do-login" }, method = RequestMethod.POST)
public String login(@ModelAttribute(value = "user") User user) {
process(user);
return "success";
}
public void process(User user) {
List<User> users = userService.findAll();
for (User u : users) {
if (!u.getUserName().equals(user.getUserName())) {
IssueDetail detail = new IssueDetail();
detail.setSummary("user name");
detail.setDescription("wrong user name entered");
issueDetailService.save(detail);
} else if (!u.getPassword().equals(user.getPassword())) {
IssueDetail detail = new IssueDetail();
detail.setSummary("password");
detail.setDescription("wrong password entered");
issueDetailService.save(detail);
} else if (!u.getUserType().equalsIgnoreCase(user.getUserType())) {
IssueDetail detail = new IssueDetail();
detail.setSummary("user type");
detail.setDescription("wrong user type entered");
issueDetailService.save(detail);
}
}
}
我尝试了上面的代码....当上面的循环运行时,如果用户没有输入任何字段,则循环将在数据库中保存任何 if 语句 3 次。
有没有其他方法可以做到这一点。
测试用例
Username password type
-------------------------
N N N =NULL
Y N N = WRONG PASS & TYPE
Y Y N = WRONG TYPE.
N Y Y = WRONG USER.
N N Y = WRONG PASSWORD & TYPE.