我正在开发一个使用Spring MVC和Hibernate的Web应用程序,我有用户登录系统访问内部页面。这是通过使用侦听会话变量的拦截器来完成的。使用bean进行登录和注册 - Spring MVC + Hibernate
我可以正确注册查找有效值。 但在登录的情况下,我只需要用户名和密码,我在使用bean验证登录时遇到了麻烦,因为它指责没有电子邮件等。
这是用户等级:
@Entity
public class User{
@Id
@GeneratedValue
private int id;
@NotNull
@Column(name="username",unique=true)
@Size(min=5)
private String username;
@NotNull
@Email
private String email;
@NotNull
@Size(min=5)
private String password;
private String salt;
private int status;
private String name;
private String company;
private int countryid;
@DateTimeFormat(pattern="dd/MM/yyyy")
@Temporal(TemporalType.DATE)
private Calendar subscriptionDate;
//Getters and Setters
}
控制器:
@Transactional
@Controller
public class LoginController {
@Autowired
UserDao dao;
// Other Mappings
@RequestMapping(value = "addUser", method = RequestMethod.POST)
public String makeRegistration(@ModelAttribute("user") @Valid User user, BindingResult result,
RedirectAttributes redirectAttributes) {
if (result.hasErrors()) {
return "redirect:register";
}
if (dao.add(user)) {
redirectAttributes.addFlashAttribute("user", user);
return "redirect:login";
} else {
return "redirect:register";
}
}
@RequestMapping(value = "enter", method = RequestMethod.POST)
public String doLogin(@ModelAttribute("user") @Valid User user, BindingResult result, HttpSession session) {
if (result.hasErrors()) {
return "redirect:login";
} else {
if (dao.authenticate(user)) {
session.setAttribute("userLoggedIn", user.getUsername());
return "forward:index";
} else {
return "redirect:login";
}
}
}
\\ Other mappings.
如何使用 “用户” 级两种登录和注册? 我必须使用inhertance吗?
你能给一个具体的例子,让我可以理解这个想法吗?你的意思是像“Loginform实现验证器”; “公共无效验证(用户用户,错误错误){/ /验证逻辑}” –
考虑它完成:-) –
是的,现在我可以理解。就像一个侧面的问题,我可以加载形式:验证错误的错误?此外,我正在哈希所有passwods,因此盐场。 –