스프링

pom.xml

		<!-- Servlet -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>

 

class UserController

	@RequestMapping("/login/form")
	public String loginForm(@Valid Authenticate authenticate , BindingResult bindingResult, Model model){
		if(bindingResult.hasErrors()){
			return "users/login";
		}
		
		User user=userDao.findById(authenticate.getUserId());
		if(user==null){
			//에러 처리 -존재하지 않는 사용자 입니다.
			model.addAttribute("errorMessage", "존재하지 않는 사용자입니다.");
			return "users/login";
		}
		
		if(!user.matchPassword(authenticate)){
			// 에러 처리 - 비밀번호가 틀립니다.
			model.addAttribute("errorMessage", "비밀번호가 틀립니다.");
			return "users/login";
		}
			
		// 세션에 사용자 정보 저장
		
		logger.debug("loginForm  {}" , authenticate.toString());
		return "users/login";
	}

 

class UserDao

	public User findById(String userId) {
		String sql =" select * from USERS where userId =?";	
		RowMapper<User> rowMapper =new RowMapper<User>() {
			@Override
			public User mapRow(ResultSet rs, int rowNum) throws SQLException {
				
				return new User(
						rs.getString("userId"),
						rs.getString("password"),
						rs.getString("name"),
						rs.getString("email")
						);
			}
		};
		
		try{
			return getJdbcTemplate().queryForObject(sql, rowMapper, userId);
		}catch(Exception e){
			return null;
		}
	}

 

 

 class User 

	public boolean matchPassword(Authenticate authenticate) {
		if(this.password==null){
			return false;
		}
		return this.password.equals(authenticate.getPassword());
	}	
    
    

 

class UserTest

	@Test
	public void matchPassword() throws Exception{
		String password = "password";
		Authenticate authenticate=new Authenticate("userId", password);
		User user =new User("userId", password, "name", "javagigi@slipp.net");
		assertTrue(user.matchPassword(authenticate));
		
		
		authenticate=new Authenticate("userId", "password2");
		assertFalse(user.matchPassword(authenticate));
		
	}

 

 

login.jsp

           <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>
                <c:if test="${not empty errorMessage }">
                	<div class="control-group">
                		<div class="controls">
                			<div class="error">${errorMessage }</div>
                		</div>
                	</div>
                </c:if>
                <button type="submit" class="btn btn-success clearfix pull-right">로그인</button>
                <div class="clearfix" />
            </form:form>
            

 

 

 

 

 

about author

PHRASE

Level 60  머나먼나라

일이란 사람 수가 많다고 빨리 되는 것은 아니다. -손자병법

댓글 ( 4)

댓글 남기기

작성