본문 바로가기

프레임워크/전자정부 프레임워크

전자정부 프레임워크 로그인정리

전자정부프레임워크

1. 기능별분석

로그인 진행과정

n egovframework 로그인 동작과정

1. /src/main/webapp/index.jsp 호출

2. /index.jsp 에있는 forward 이용하여 컨투럴러 이동 egovLoinUsr.do

3. egovLoginUsr.do

à A. /java/egovframework/com/uat.uia/ 해당하는 Controller 이라고 명시된파일을 찾는다.

à B. /java/egovframework/com/uat.uia/EgovLoginController.java 열어보면은 @RequestMapping value값이 egovLoginUsr이라는 것을 찾는다. 아래에있는 메서드를 실행하게됩니다. 로그인 관련되어서는 loginUsrView() 실행됩니다.

à C.해당 return 값을 통해서 /WEB-INF/jsp/egovframework/comm/uat/uia/EgovLoginUsr.jsp 호출하여 출력해준다.

4. 해당 id/pw 입력하고 action 값을 통해 정의된 do 호출한다. 여기에서는 /uat/uia/actionLogin.do 부른다.

à A. actionLogin.do 역시 Controller 에서 @RequestMapping value 값을 찾아서실행시켜준다.

à B. loginService 해당하는 EgovLoginService 찾는다.

à C.여기서 실행하고자하는 loginService.actionLogin(loginVO) 해당하는 메소드를 찾아서 실행한다.

à D. EgovLoginServiceImple 에있는 actionLogin 실행한다.

i. 이곳에서 .loginDAO.actionLogin(vo) 싱행하게되는데 이곳에서

ii. /src/uat/uia/service/impl/EgovLoginServiceImpl.java 찾아서 actionLogin 을실행시킨다.

iii. loginDAO.actionLogin 실행하게되면은 LoginDAO.java 에있는 actionLogin 실행하게된다. 이곳에서 selectByPk 통해서 ibatis /resources/egovframework/sqlmap/com/uat.uia/EgovLoginUsr_SQL_Mysql.xml loginDAO.actionLogin 실행한다.

iv. 각값들이 모두 리턴되고 EgovLoginontroller 반환된다. 이값에서 resultVO 담기게 되고 이값들이

5. 정상적인 아이디라고 판단된다면?

à A. if (resultVO != null && resultVO.getId() != null && !resultVO.getId().equals("") && loginPolicyYn) { Ð= TRUE

à B. redirect:/j_spring_security_check?j_username= 이부분실행

i. spring security 연동 부분을 실행하게 된다. 위의 부분은 이부분에 대한정보는 /src/main/resources/egovframework/spring/content-security.xml 에서 j_spring_security_check 부분을 찾아서 실행하게되고 이부분에서 /uat/uia/actionMain.do 부분이 실행하게 된다.

ii. 이부분은 EgovLoginontroller 찾게되고 이부분이 각종 권한 처리를 하게되고

1. EgovUserDetailsHelper.isAuthenticated 이부분을 통해서 인증된 사용자인지 체크를 하게 되고 이부분은 /sec/ram/security/userdetails/util/EgovUserDetailHelper.java에서 isAuthenticated 부분이 실행하게 되고 이부분에서 true / false 리턴하게된다.

2.

그후 각종 로그를 찍어주고 (LOG.debug Ð consol 로그찍는 기능입니다.)

3. 이부분은 cmm/EgovUnitMain 찾게됩니다. 이부분은 jsp 찾게되고

4. WEB-INF/jsp\egovframework/cmm/EgovUnitMain.jsp 을찾아서 실행하게 됩니다.

게시판 진행과정

2. 로그인디렉토리 구조

iktb

n java

egovframework.com

à cmm

à ems

à sec

à sym

à uat.uia

service

impl

EgovLoginPolicyServiceImpl.java

EgovLoginServiceImpl.java

LoginDAO.java

LoginPolicyDAO.java

EgovLoginPolicyService.java

EgovLoginService.java

LoginPolicy.java

LoginPolicyVO.java

LoginVO.java

SessionVO.java

web

EgovLoginController.java

EgovLoginPolicyController.java

à uss.umt

à utl

n resources

egovframework

à egovProps

à message

à spring

context-aspect.xml

context-common.xml

context-datasource.xml

context-excel.xml

context-idgen.xml

context-properties.xml

context-security.xml

context-sqlMap.xml

context-transaction.xml

context-validator.xml

à sqlmap

com

uat.uia

EgovLoginUsr_SQL_Mysql.xml

à validator

log4.xml

n src

main

à webapp

WEB-INF

jsp

egovframework

cmm

uat

uia

EgovLoginUsr.jsp

index.jsp

3. 어노테이션 설명

계층형 Controller들을 사용하면 여러 정보들(요청과 Controller 매핑 설정 ) XML 설정 파일에 명시 해줘야 하는데, 복잡할 아니라 설정 파일과 코드 사이를 빈번히 이동 해야하는 부담과 번거로움이 있다. @MVC Controller 코드안에 어노테이션으로 설정함으로써 편리하게 MVC 프로그래밍을 있도록 했다. @MVC에서 사용하는 주요 어노테이션은 아래와 같다.

n @Controller

해당 클래스가 Controller임을 나타내기 위한 어노테이션

n @RequestMapping

요청에 대해 어떤 Controller, 어떤 메소드가 처리할지를 맵핑하기 위한 어노테이션

n @RequestParam

Controller 메소드의 파라미터와 웹요청 파라미터와 맵핑하기 위한 어노테이션

n @ModelAttibute

Controller 메소드의 파라미터나 리턴값을 Model 객체와 바인딩하기 위한 어노테이션

n @SessionAttributes

Model 객체를 세션에 저장하고 사용하기 위한 어노테이션

참고사이트

n http://www.egovframe.org/wiki/doku.php?id=egovframework:rte:ptl:annotation-based_controller

4. VO(value Object)?

- Model, View 간의 데이터 전달용도

- 멤버변수와 getter, setter 메소드로 구성

- 기본 jsp bean 동일

- 파라미터가 길어질 경우 VO 이용하는 것이 효율적

- Entity Vo custom vo 두종류

- Entity vo : entity(ejb 또는 db 정보와 동일)

- Custom vo 사용자 필요에 의해 만든 vo

- 자동화 도구를 사용하여 만드는 것이 편리함

5. SPRING

resource

n context-aspect.xml

관점정의

à 예외 처리를 위한 Spring 설정 파일(resources/egovframework.spring/context-aspect.xml) 내에 관점(Aspect) 클래스를 빈으로 정의한 , 해당 관점(Aspect) 대한 포인트컷과 충고(Advice) 정의한다

n context-common.xml

n context-datasource.xml

n context-excel.xml

n context-idgen.xml

n context-properties.xml

n context-security.xml

n context-sqlMap.xml

n context-transaction.xml

트랜젝션 처리

n context-validator.xml

6. log4j

log4j.xml

n appender : 콘솔에 로그를 기록하

7. jstl

jstl 가장 핵심적인 기능을 제공하는 lib

n <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

변수 설정 삭제 태그

à <c:set>

<c:set var="변수명" value="설정값" target="객체" property="" scope="범위">

지정된 변수에 값을 저장하는 태그

특정 property 값을 지정할 경우 target 객체표시 property 지정

à <c:remove>

<c:remove var="변수명" scope="범위">

설정된 속성(변수, 객체) 제거

조건처리

à <c:if>

<c:if test="조건" var="변수명" scope="범위">

à <c:choose>

<c:choose> <c:hwen test="조건"></when><cLotherwise></otherwise></c:choose>

자바의 switch 같은 역활을 합니다.

반복처리

à <c:foreach>

<cLforeach itmes="객체명" begin="시작인덱스" end="끝인덱스">

à <c:fortakens>

<c:fortokens items="객체명" delims="구분자" begin="시작인덱스" end="끝인덱스" step="변수명" varStatus="상태변수">

예외처리

à <c:catch>

<c:catch var="변수명">

예외가 발생할 경우 예외사항을 변수에 저장

예외사하응ㄹ 출력 변수 message

jstl 가지고 할수있는일

n 간단한 프로그램 로직을 구사

n 다른 jsp 페이지 호출

n 날짜 , 시간 , 숫자의 포멧

n jsp 페이지 하나를 가지고 여러 가지 언어의 웹페이지 생성

n 데이터베이스의 입력, 수정 삭제 조회

n xml 문서의 처리

n 문자열을 처리하는 함수

n 각기능

코어

à 일반 프로그램이 언어에서 제공하는 것과 유사한 변수선ㅇ, 실행 흐름을 제어 기능ㅇ르 제공하고, 다른 JSP 페이지로 제어를 이동하는 기능을 제공

à 접두어 : C

포매팅

à 숫자, 날짜, 시간을 포매팅하는 기능과 국제화, 다국어 지원 기능을 제공

à 접두어: fmt

데이터베이스

à 데이터베이스의 데이터를 입력, 수정, 삭제 , 조회하는 기능을 제공

à 접두어 : sql

xml처리

à xml 문서를 철이할 필요한 기능을 제공합니다.

à 접두어 : x

함수

à 문자열을 처리하는 함수를 제공합니다.

à 접두어 : Fn

[출처] posted by 멋진꿈 2011/09/08 19:53

http://air82.tistory.com/47