로그인 회원가입
모두인포
전체IT경제사회생활스포츠시사여행연애

전자정부 표준프레임워크 로그인 기능 예제

lmkfox · 2025-05-16 · 조회 0
전자정부 표준프레임워크 로그인 기능 예제
전자정부 표준프레임워크 로그인 기능 예제 1. 기본 구성 개요 - 로그인 폼: /login.do (GET) - 로그인 처리: /login.do (POST) - 로그아웃 처리: /logout.do - 사용자 정보는 DB에서 조회 (예: USER_TBL) 2. DB 테이블 예시 (MySQL 기준) CREATE TABLE USER_TBL ( USER_ID VARCHAR(50) PRIMARY KEY, USER_NM VARCHAR(100), PASSWORD VARCHAR(100) ); 샘플 사용자 추가: INSERT INTO USER_TBL (USER_ID, USER_NM, PASSWORD) VALUES ('testuser', '홍길동', 'test123'); 3. Controller ( LoginController.java ) @Controller public class LoginController { @Resource(name = "loginService") private LoginService loginService; @RequestMapping(value = "/login.do", method = RequestMethod.GET) public String loginForm() { return "login/login"; } @RequestMapping(value = "/login.do", method = RequestMethod.POST) public String login( @RequestParam("userId") String userId, @RequestParam("password") String password, HttpSession session, ModelMap model) { LoginVO user = loginService.selectUser(userId, password); if (user != null) { session.setAttribute("loginVO", user); return "redirect:/main.do"; } else { model.addAttribute("message", "아이디 또는 비밀번호가 일치하지 않습니다."); return "login/login"; } } @RequestMapping("/logout.do") public String logout(HttpSession session) { session.invalidate(); return "redirect:/login.do"; } } 4. Service 및 구현 LoginService.java public interface LoginService { LoginVO selectUser(String userId, String password) throws Exception; } LoginServiceImpl.java @Service("loginService") public class LoginServiceImpl implements LoginService { @Resource(name = "loginMapper") private LoginMapper loginMapper; @Override public LoginVO selectUser(String userId, String password) throws Exception { return loginMapper.selectUser(userId, password); } } 5. Mapper (MyBatis 사용) LoginMapper.java public interface LoginMapper { LoginVO selectUser(@Param("userId") String userId, @Param("password") String password); } login-mapper.xml <mapper namespace="loginMapper"> <select id="selectUser" parameterType="map" resultType="LoginVO"> SELECT USER_ID, USER_NM FROM USER_TBL WHERE USER_ID = #{userId} AND PASSWORD = #{password} </select> </mapper> 6. VO 클래스 ( LoginVO.java ) public class LoginVO implements Serializable { private String userId; private String userNm; // Getter/Setter 생략 } 7. JSP 파일 ( /webapp/WEB-INF/jsp/login/login.jsp ) <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <html> <head><title>로그인</title></head> <body> <h2>로그인 페이지</h2> <form action="<c:url value='/login.do'/>" method="post"> <label for="userId">아이디:</label> <input type="text" name="userId" required /><br/> <label for="password">비밀번호:</label> <input type="password" name="password" required /><br/> <button type="submit">로그인</button> </form> <c:if test="${not empty message}"> <p style="color:red">${message}</p> </c:if> </body> </html> 8. Dispatcher 설정 ( dispatcher-servlet.xml ) <context:component-scan base-package="egovframework.example" /> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean> 9. 실행 확인 - Tomcat 실행 - http://localhost:8080/프로젝트명/login.do 접속 - testuser / test123 로그인 → main.do 페이지로 리다이렉트 마무리 전자정부 프레임워크 기반 로그인 시스템은 보안 요구가 높은 공공 프로젝트에서 많이 사용되며, 위의 예시는 기본 형태이므로 향후에는 다음과 같은 기능도 고려해야 합니다: - 비밀번호 암호화 (BCrypt 등) - 로그인 시도 실패 횟수 제한 - 세션 타임아웃 설정 - 권한/역할 기반 접근제어

댓글

아직 댓글이 없습니다.

로그인 후 댓글을 남길 수 있습니다.