====== 롤 관리 ====== ===== 개요 ===== **롤관리**는 시스템을 사용하는 사용자 혹은 사용자 그룹별로 부여된 권한정보에 준하여 시스템에 접근할 수 있는 권한을 제어하는 기능을 제공하고, 그와 관련한 롤 정보를 관리할 수 있는 기능을 제공한다. ===== 설명 ===== **롤관리**는 사용자 권한별 롤 정보를 관리하기 위한 목적으로 롤의 **등록, 수정, 삭제, 조회, 목록조회**의 기능을 수반한다. ① 롤등록 : 시스템 메뉴 및 기능화면에 따른 접근권한, 데이터 입력, 수정, 삭제의 접근 정보를 등록한다. ② 롤수정 : 시스템 메뉴 및 기능화면에 따른 접근권한, 데이터 입력, 수정, 삭제의 접근 정보를 수정한다. ③ 롤삭제 : 시스템 메뉴 및 기능화면에 따른 접근권한, 데이터 입력, 수정, 삭제의 접근 정보를 삭제한다. ④ 롤조회 : 시스템 메뉴 및 기능화면에 따른 접근권한, 데이터 입력, 수정, 삭제의 접근 정보를 조회한다. ⑤ 롤목록 : 시스템 메뉴 및 기능화면에 따른 접근권한, 데이터 입력, 수정, 삭제의 접근 정보 목록을 조회한다. ===== 설명 ===== ==== 패키지 참조 관계 ==== 롤관리 패키지는 요소기술의 공통 패키지(cmm)와 권한관리 패키지에 대해서 직접적인 함수적 참조 관계를 가진다. 하지만, 컴포넌트 배포 시 오류 없이 실행되기 위하여 패키지 간의 참조관계에 따라 부서권한관리, 권한그룹관리, 그룹관리, 스프링시큐리티, 사용자통합인증, 요소기술(유틸리티) 시스템, 웹에디터, 메일연동 인터페이스 패키지와 함께 배포 파일을 구성한다. * 패키지 간 참조 관계 : [[egovframework:com:v2:init_pkg_dependency#보안|보안 Package Dependency]] ==== 관련소스 ==== ^유형^대상소스명^비고^ |Controller|egovframework.com.sec.rmt.web.EgovRoleManageController.java|롤 관리를 위한 컨트롤러 클래스| |Service|egovframework.com.sec.rmt.service.EgovRoleManageService.java|롤 관리를 위한 서비스 인터페이스| |ServiceImpl|egovframework.com.sec.rmt.service.impl.EgovRoleManageServiceImpl.java|롤 관리를 위한 서비스 구현 클래스| |VO|egovframework.com.sec.rmt.service.RoleManageVO.java|롤 관리를 위한 VO 클래스| |DAO|egovframework.com.sec.rmt.service.impl.RoleManageDAO.java|롤 관리를 위한 데이터처리 클래스| |Model|egovframework.com.sec.rmt.service.RoleManage.java|롤 관리를 위한 Model 클래스| |JSP|/WEB-INF/jsp/egovframework/com/sec/rmt/EgovRoleManage.jsp|롤 관리를 위한 jsp페이지| |JSP|/WEB-INF/jsp/egovframework/com/sec/rmt/EgovRoleInsert.jsp|롤 등록를 위한 jsp페이지| |JSP|/WEB-INF/jsp/egovframework/com/sec/rmt/EgovRoleUpdate.jsp|롤 수정를 위한 jsp페이지| |QUERY XML|resources/egovframework/mapper/com/sec/rmt/EgovRoleManage_SQL_mysql.xml|롤 관리를 위한 MySQL용 QUERY XML| |QUERY XML|resources/egovframework/mapper/com/sec/rmt/EgovRoleManage_SQL_cubrid.xml|롤 관리를 위한 Cubrid용 QUERY XML| |QUERY XML|resources/egovframework/mapper/com/sec/rmt/EgovRoleManage_SQL_oracle.xml|롤 관리를 위한 Oracle용 QUERY XML| |QUERY XML|resources/egovframework/mapper/com/sec/rmt/EgovRoleManage_SQL_tibero.xml|롤 관리를 위한 Tibero용 QUERY XML| |QUERY XML|resources/egovframework/mapper/com/sec/rmt/EgovRoleManage_SQL_altibase.xml|롤 관리를 위한 Altibase용 QUERY XML| |QUERY XML|resources/egovframework/mapper/com/sec/rmt/EgovRoleManage_SQL_maria.xml|롤 관리를 위한 Maria용 QUERY XML| |QUERY XML|resources/egovframework/mapper/com/sec/rmt/EgovRoleManage_SQL_postgres.xml|롤 관리를 위한 Postgres용 QUERY XML| |Message properties|resources/egovframework/message/com/sec/rmt/message_ko.properties|롤 관리 Message properties(한글)| |Message properties|resources/egovframework/message/com/sec/rmt/message_en.properties|롤 관리 Message properties(영문)| |Idgen XML|resources/egovframework/spring/com/idgn/context-idgn-Role.xml|롤 관리 Id생성 Idgen XML| ==== 클래스 다이어그램 ==== {{:egovframework:com:v2:sec:롤관리_클래스다이어그램.jpg?740|}} ==== XML 설정 파일 ==== 스프링 시큐리티를 사용하는 경우 (globals.properties 에서 Globals.Auth=security 로 설정한 경우) ^파일명^위치^비고^ |context-security|src/main/resources/egovframework/spring/com/context-security.xml|스프링 시큐리티와 관련된 설정이 적용된 파일| 세션방식을 사용하는 경우 (globals.properties 에서 Globals.Auth=session 으로 설정한 경우) ^파일명^위치^비고^ |egov-com-access|src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-access.xml|세션방식의 접근제어가 적용된 파일| ==== ID Generation ==== === ID Generation 관련 DDL 및 DML === * ID Generation Service를 활용하기 위해서 Sequence 저장테이블인 COMTECOPSEQ에 **ROLE_ID** 항목을 추가한다. CREATE TABLE COMTECOPSEQ ( TABLE_NAME VARCHAR(20) NOT NULL, NEXT_ID NUMERIC(30) NULL, PRIMARY KEY (TABLE_NAME) ); INSERT INTO COMTECOPSEQ VALUES('ROLE_ID','1'); === ID Generation 환경설정(context-idgn-Role.xml) === ==== 테이블 ==== ^테이블명^테이블명(영문)^비고^ |롤정보|COMTNROLEINFO|권한에 종속되는 보안요소로써 사이트 접근 권한 이하 등록 롤, 수정 롤, 삭제 롤을 부여할 수 있다.| ==== 관련코드 ==== 롤관리의 속성 중 롤타입에 대한 공통코드를 정의한다. ^코드분류^코드분류명^코드ID^코드명^ |COM029|롤유형코드|url|URL| |COM029|롤유형코드|method|METHOD| |COM029|롤유형코드|pointcut|POINTCUT| ===== 관련기능 ===== 롤관리기능은 크게 **롤 목록조회**, **롤 등록**, **롤 수정**, **롤 삭제** 기능으로 구성되어 있다. ==== 롤목록 조회 ==== === 비즈니스 규칙 === 롤 목록은 페이지 당 10건씩 조회되며, 페이징은 10페이지씩 이루어진다. 검색조건은 롤명 대해서 수행된다. === 관련코드 === N/A === 관련화면 및 수행메뉴얼 === ^Action^URL^Controller method^SQL Namespace^SQL QueryID^ |조회|/sec/rmt/EgovRoleList.do|selectRoleList|"roleManageDAO"|"selectRoleList"| | | | |"roleManageDAO"|"selectAuthorListTotCnt"| {{:egovframework:com:v3.6:sec:rmt:role_manage_list.png|롤목록 조회}} 조회조건 : 조회조건으로 롤 명을 입력 후 조회한다.\\ 조회 : 등록된 롤 정보 목록을 조회한다.\\ 등록 : 롤 정보를 등록할 경우 등록버튼을 선택하면 롤을 등록할 수 있는 화면으로 이동한다.\\ ==== 롤 등록 ==== === 비즈니스 규칙 === 롤 정보를 **등록**하기 위해서 롤 등록 화면의 각 입력항목에 롤 정보를 입력한 뒤 등록버튼을 선택한다. === 관련코드 === N/A === 관련화면 및 수행메뉴얼 === ^Action^URL^Controller method^SQL Namespace^SQL QueryID^ |등록화면|/sec/rmt/EgovRoleInsertView.do|insertRoleView| | | |등록|/sec/rmt/EgovRoleInsert.do|insertRole|"roleManageDAO"|"insertRole"| {{:egovframework:com:v3.6:sec:rmt:role_manage_insert.png|롤목록 등록}} 목록 : 롤 목록 화면으로 이동한다.\\ 등록 : 롤 정보를 신규로 등록할 경우 각 속성정보를 입력 후 등록버튼을 선택한다.\\ ==== 롤 수정 ==== === 비즈니스 규칙 === 롤 수정 화면은 상세조회 화면과 동일하고, 기 등록된 롤 정보를 수정한 뒤 저장버튼을 선택한다. === 관련코드 === N/A === 관련화면 및 수행메뉴얼 === ^Action^URL^Controller method^SQL Namespace^SQL QueryID^ |수정화면|/sec/rmt/EgovRole.do|selectRole|"roleManageDAO"|"selectRoleList"| |수정|/sec/rmt/EgovRoleUpdate.do|updateRole|"roleManageDAO"|"updateRole"| |삭제|/sec/rmt/EgovRoleDelete.do|deleteRole|"roleManageDAO"|"deleteRole"| {{:egovframework:com:v3.6:sec:rmt:role_manage_updt.png|롤 수정}} 목록 : 롤 목록 화면으로 이동한다.\\ 삭제 : 삭제버튼을 선택하여 롤 정보를 삭제한다.\\ 저장 : 롤 정보를 수정할 경우 각 속성정보를 변경 후 저장버튼을 선택한다.\\ ==== 롤 삭제 ==== === 비즈니스 규칙 === 롤 정보를 **삭제**하기 위해서 롤 목록 조회 화면의 삭제대상 롤 정보를 선택한 뒤 삭제버튼을 선택한다. === 관련코드 === N/A === 관련화면 및 수행메뉴얼 === ^Action^URL^Controller method^SQL Namespace^SQL QueryID^ |삭제|/sec/rmt/EgovRoleListDelete.do|deleteRoleList|"roleManageDAO"|"deleteRole"| {{:egovframework:com:v3.6:sec:rmt:role_manage_delete.png|롤 삭제}} 선택 : 삭제하기 위한 롤 정보를 선택한다. 멀티선택이 가능하다.\\ 삭제 : 삭제버튼을 선택하여 롤 정보를 삭제한다.\\