egov 4.2 security 인가에 대한 기능 작동 오류
- 작성자 :
- 김*광
- 작성일 :
- 2024-12-23 15:09:18
- 조회수 :
- 139
- 구분 :
- 개발환경 / 4.2
- 진행상태 :
- 완료
Q
안녕하세요.
egov security 사용 시, 인가에 대한 기능이 정상작동하지 않아 문의 남김니다.
egov eclipse에서 New Web Project로 빈 프로젝트 생성후 아래와 같이 공통컴포넌트를 선택하여 생성했습니다.
- 로그인>일반로그인
- 역할/권한관리
- 암호화/복호화
- 게시판>게시판템플릿
- 사용자관리
- 개인화
- 공통코드관리>공통코드
- 메뉴관리
- 포맷/날짜/계산
생성 후 , DB 커넥션 관련 수정하여 정상 기동시켰습니다.
- context-crypto.xml 에서 initial="false" crypto="false" 로 설정
- context-datasource.xml 에서 <property name="password" value="${Globals.postgres.Password}"/> 로 바꿈
이 후 SampleController.java(egovframework.com.sample.web)를 생성하고
롤 관리 기능을 통해
롤패턴: \\A/sample/.*\\.do.*\\Z
롤타입: URL
로 등록 시켰습니다.
롤 등록만 했고, 권한롤관리를 통해 등록 시키지 않았습니다.
제 생각에는
USER(ROLE_USER) 계정에서는 /sample/selectList.do 가 접근 불가능해야 하는데
접근가능합니다.
혹시 몰라 testuser(ROLE_ANONYMOUS)계정을 생성하고, USER(ROLE_USER) 계정에 /sample/selectList.do 롤을 연결시키고
testuser로 로그인 후 /sample/selectList.do에 접근했는데도 접속이 가능합니다.
로그를 보니 context-security에서 조회된 롤 url이 '/sample/selectList.do'을 체크만하고 그냥 허용하는 듯 합니다.
권한 추가시 서버 재기동도 했고, 유저도 로그아웃 로그인 하여 확인했습니다.
globals.properties에서 Globals.Auth =security도 설정 되어 있습니다.
혹여, all-in-one도 다운받아 테스트해봤는데 인가에 대한 기능이 작동하지 않습니다.
제가 이해하기론 security 사용 시 롤을 등록하고 해당 권한에 연결 시키면 이에 따른 권한 인가가 작동해야한다고 알고있습니다.
testuser(ROLE_ANONYMOUS)로 /sample/selectList.do 접근시 로그 첨부합니다.
다른 테스트로 /EgovTop.do에 대한 권한을 ROLE_ANONYMOUS에서 제거하고 ROLE_USER에만 추가했을 때에도
testuser(ROLE_ANONYMOUS)로 접근이 가능합니다.
확인 부탁드립니다.
egov security 사용 시, 인가에 대한 기능이 정상작동하지 않아 문의 남김니다.
egov eclipse에서 New Web Project로 빈 프로젝트 생성후 아래와 같이 공통컴포넌트를 선택하여 생성했습니다.
- 로그인>일반로그인
- 역할/권한관리
- 암호화/복호화
- 게시판>게시판템플릿
- 사용자관리
- 개인화
- 공통코드관리>공통코드
- 메뉴관리
- 포맷/날짜/계산
생성 후 , DB 커넥션 관련 수정하여 정상 기동시켰습니다.
- context-crypto.xml 에서 initial="false" crypto="false" 로 설정
- context-datasource.xml 에서 <property name="password" value="${Globals.postgres.Password}"/> 로 바꿈
이 후 SampleController.java(egovframework.com.sample.web)를 생성하고
롤 관리 기능을 통해
롤패턴: \\A/sample/.*\\.do.*\\Z
롤타입: URL
로 등록 시켰습니다.
롤 등록만 했고, 권한롤관리를 통해 등록 시키지 않았습니다.
제 생각에는
USER(ROLE_USER) 계정에서는 /sample/selectList.do 가 접근 불가능해야 하는데
접근가능합니다.
혹시 몰라 testuser(ROLE_ANONYMOUS)계정을 생성하고, USER(ROLE_USER) 계정에 /sample/selectList.do 롤을 연결시키고
testuser로 로그인 후 /sample/selectList.do에 접근했는데도 접속이 가능합니다.
로그를 보니 context-security에서 조회된 롤 url이 '/sample/selectList.do'을 체크만하고 그냥 허용하는 듯 합니다.
권한 추가시 서버 재기동도 했고, 유저도 로그아웃 로그인 하여 확인했습니다.
globals.properties에서 Globals.Auth =security도 설정 되어 있습니다.
혹여, all-in-one도 다운받아 테스트해봤는데 인가에 대한 기능이 작동하지 않습니다.
제가 이해하기론 security 사용 시 롤을 등록하고 해당 권한에 연결 시키면 이에 따른 권한 인가가 작동해야한다고 알고있습니다.
testuser(ROLE_ANONYMOUS)로 /sample/selectList.do 접근시 로그 첨부합니다.
다른 테스트로 /EgovTop.do에 대한 권한을 ROLE_ANONYMOUS에서 제거하고 ROLE_USER에만 추가했을 때에도
testuser(ROLE_ANONYMOUS)로 접근이 가능합니다.
확인 부탁드립니다.
환경정보
-
- OS 정보 : windows
- 표준프레임워크 버전 : 4.2
- JDK(JRE) 정보 : openjdk-17.0.0.1
- WAS 정보 : apache-tomcat-9.0.98
- DB 정보 : postgres
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크 센터입니다.
말씀하신 환경과 유사하게 구성 후 테스트 결과
먼저 USER(ROLE_USER)의 경우, 기본적으로
일반 사용자 권한으로 모든 자원에 대해 접근 되도록 구성되어 있으므로
별도로 추가한 샘플 URL로 접근이 가능합니다.
testuser(ROLE_ANONYMOUS)의 경우 익명 사용자 권한으로
별도의 롤 추가 없이는 샘플 URL로 접근할 수 없습니다.
권한에 따른 접근제어를 구성하시는 경우
롤을 등록하신 다음, 특정 권한에 추가하신 롤을 등록,
그리고 사용자 계정에 해당 권한을 부여하는 과정이 필요하며
추가적으로, 권한 그룹에는 상속 구조가 있어
상위 권한은 하위의 권한을 모두 상속처럼 소유하게 되며
그 상태에서 추가적인 권한을 설정하는 방식으로 구성되어 있습니다.
기본 권한 구조와의 충돌이 원인일 수 있으므로
기존 권한 및 롤을 모두 등록 해제하신 후
의도에 맞게 권한 및 롤을 구성해 보시기 바라며
아래 URL의 실행환경 > Spring Security와
공통컴포넌트 > 보안 > 권한관리 항목을 참고해 주시기 바랍니다.
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:fdl:server_security
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:com:v4.2:sec:%EA%B6%8C%ED%95%9C%EA%B4%80%EB%A6%AC
감사합니다.
표준프레임워크 센터입니다.
말씀하신 환경과 유사하게 구성 후 테스트 결과
먼저 USER(ROLE_USER)의 경우, 기본적으로
일반 사용자 권한으로 모든 자원에 대해 접근 되도록 구성되어 있으므로
별도로 추가한 샘플 URL로 접근이 가능합니다.
testuser(ROLE_ANONYMOUS)의 경우 익명 사용자 권한으로
별도의 롤 추가 없이는 샘플 URL로 접근할 수 없습니다.
권한에 따른 접근제어를 구성하시는 경우
롤을 등록하신 다음, 특정 권한에 추가하신 롤을 등록,
그리고 사용자 계정에 해당 권한을 부여하는 과정이 필요하며
추가적으로, 권한 그룹에는 상속 구조가 있어
상위 권한은 하위의 권한을 모두 상속처럼 소유하게 되며
그 상태에서 추가적인 권한을 설정하는 방식으로 구성되어 있습니다.
기본 권한 구조와의 충돌이 원인일 수 있으므로
기존 권한 및 롤을 모두 등록 해제하신 후
의도에 맞게 권한 및 롤을 구성해 보시기 바라며
아래 URL의 실행환경 > Spring Security와
공통컴포넌트 > 보안 > 권한관리 항목을 참고해 주시기 바랍니다.
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:fdl:server_security
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:com:v4.2:sec:%EA%B6%8C%ED%95%9C%EA%B4%80%EB%A6%AC
감사합니다.