class Authenticate
package com.java.dto;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
public class Authenticate {
@NotNull @Min(4) @Max(12)
private String userId;
@NotNull @Size(min=4, max=12)
private String password;
public Authenticate() {
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "Authenticate [userId=" + userId + ", password=" + password + "]";
}
}
class UserController
package com.java.web;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.java.dao.users.UserDao;
import com.java.dto.Authenticate;
import com.java.dto.User;
import javax.validation.constraints.*;
import java.util.List;
import javax.validation.Valid;
@Controller
@RequestMapping("/users")
public class UserController {
private static final Logger logger=LoggerFactory.getLogger(UserController.class);
@Autowired
private UserDao userDao;
@RequestMapping("/form")
public String form(Model model){
logger.debug("User : {} " , "test");
model.addAttribute("user" , new User());
return "users/form";
}
@RequestMapping(value="", method=RequestMethod.POST)
public String create(@Valid User user, BindingResult bindingResult ){
logger.debug("User : {} " , user);
if(bindingResult.hasErrors()){
logger.debug("Binding Result has error!");
List<ObjectError> errors=bindingResult.getAllErrors();
for(ObjectError error : errors){
logger.debug("error : {}, {}", error.getCode(), error.getDefaultMessage());
}
return "users/form";
}
userDao.create(user);
logger.debug("Database : {} " , userDao.findById(user.getUserId()));
return "redirect:/";
}
@RequestMapping("/login/form")
public String loginForm(@Valid Authenticate authenticate , BindingResult bindingResult){
if(bindingResult.hasErrors()){
return "users/login";
}
User user=userDao.findById(authenticate.getUserId());
if(user==null){
//에러 처리 -존재하지 않는 사용자 입니다.
}
if(!user.getPassword().equals(authenticate.getPassword())){
// 에러 처리 - 비밀번호가 틀립니다.
}
// 세션에 사용자 정보 저장
logger.debug("loginForm {}" , authenticate.toString());
return "users/login";
}
}
login.jsp
<div class="panel panel-default content-main">
<c:if test="${loginFailed}">
<div class="alert alert-danger" role="alert">아이디 또는 비밀번호가 틀립니다. 다시 로그인 해주세요.</div>
</c:if>
<form:form modelAttribute="authenticate" name="question" method="post" action="/users/login/form">
<div class="form-group">
<label for="userId">사용자 아이디</label>
<form:input class="form-control" id="userId" name="userId" path="userId" />
<form:errors path="userId" cssClass="error"/>
</div>
<div class="form-group">
<label for="password">비밀번호</label>
<form:password class="form-control" id="password" name="password" path="password"/>
<form:errors path="password" cssClass="error"/>
</div>
<button type="submit" class="btn btn-success clearfix pull-right">로그인</button>
<div class="clearfix" />
</form:form>
</div>
댓글 ( 4)
댓글 남기기