스프링

 

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>

 

 

 

 

 

 

 

 

about author

PHRASE

Level 60  머나먼나라

득질탄지( 得蛭呑之 ). 거머리를 얻어 이것을 삼켰다는 말. 초(楚) 나라 혜왕이 한식날 아침에 먹는 나물 속에 거머리가 있는 것을 보았으나 그것을 말한다면, 요리인이 죄를 얻을까 해서 그대로 삼켰다는 고사. 부하의 잘못을 알고 있으면서 모른 척하고 관용을 베푸는 것. -잡편

댓글 ( 4)

댓글 남기기

작성