我正在開發一個使用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,因此鹽場。 –