Spring MVCとHibernateを使用してWebアプリケーションを開発しています。ここでユーザーがシステムにログインして内部ページにアクセスします。これは、セッション変数をチェックするインターセプタを使用して行われます。ログインと登録にBeanを使用する - Spring MVC + Hibernate
有効な値を探して正しく登録することができます。 しかし、私はユーザー名とパスワードが必要なログインの場合、電子メールがないなどの理由で、Beanの検証を使用してログインする方法に問題があります。
これは、Userクラスです:
@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.
はどのようにしてログインし、登録の両方のために "ユーザー" クラスを使用することができますか? 継承を使用する必要がありますか?
私はそのアイデアを理解できるように具体的な例を教えてください。 「LoginformはValidatorを実装しています。 "public void Validate(ユーザーユーザー、エラーエラー){//検証ロジック}" –
完了しました:-) –
ええ、今私は理解できます。副次的な質問と同様に、フォームで読み込むことができます:検証からのエラーエラー?また、私はすべてのpasswods、したがって塩田をハッシュしています。 –