전자정부 스프링 시큐리티 간소화 설정 관련되어 문의드립니다.
- 작성자 :
- 정*진
- 작성일 :
- 2020-11-12 10:45:05
- 조회수 :
- 6,707
- 구분 :
- 공통컴포넌트
- 진행상태 :
- 완료
Q
<egov-security:config id="securityConfig"
loginUrl="/auth/viewLogin"
logoutSuccessUrl="/home/viewHome"
loginFailureUrl="/auth/viewLogin?login_error=1"
accessDeniedUrl="/auth/viewAccessDenied"
dataSource="egov.dataSource"
jdbcUsersByUsernameQuery="SELECT USER_ID, ESNTL_ID AS PASSWORD, 1 ENABLED, USER_NM, USER_ZIP,
USER_ADRES, USER_EMAIL, USER_SE, ORGNZT_ID, ESNTL_ID,
(select a.ORGNZT_NM from COMTNORGNZTINFO a where a.ORGNZT_ID = m.ORGNZT_ID) ORGNZT_NM
FROM COMVNUSERMASTER m WHERE CONCAT(USER_SE, USER_ID) = ?"
jdbcAuthoritiesByUsernameQuery="SELECT A.SCRTY_DTRMN_TRGET_ID USER_ID, A.AUTHOR_CODE AUTHORITY
FROM COMTNEMPLYRSCRTYESTBS A, COMVNUSERMASTER B
WHERE A.SCRTY_DTRMN_TRGET_ID = B.ESNTL_ID AND B.USER_ID = ?"
jdbcMapClass="egovframework.com.sec.security.common.EgovSessionMapping"
requestMatcherType="regex"
hash="plaintext"
hashBase64="false"
concurrentMaxSessons="1"
concurrentExpiredUrl="/auth/viewLogin"
defaultTargetUrl="/home/viewHome"
sniff="true"
xframeOptions="SAMEORIGIN"
xssProtection="true"
csrf="false"
/>
</beans>
전자정부 3.9를 사용하고 있고 문서들이 최신화되어있지 않아서 설정에 어려움이 있었습니다.
EgovWebApplicationInitializer << 위키에보면 이런설정을 해야한다는 것은 어느곳에도 없어서 우여곡절 끝에 어찌 저찌 찾아서
로그인 까지는 된것 같습니다.
로그인 처리 후 홈으로 들어오면
// 인증여부
boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
// 권한정보
List<String> authoroities = EgovUserDetailsHelper.getAuthorities();
// 인증사용자 객체
Object o = EgovUserDetailsHelper.getAuthenticatedUser();
이런 정보들을 가져올수있습니다.
------------------ 궁금한점 ------------------------
현재 로그인을 하지 않고도 모든 URL에 접근이 됩니다.
시큐리티 필터가 인증체크할 URL을 설정하고 거기서 권한 을 체크할텐데 필터를 안타는건지 어떤건지 잘모르겠습니다.
어디에 설정을 해야 로그인 하지 않은 경우 로그인페이지로 이동이될까요?
<egov-security:config id="securityConfig"
loginUrl="/auth/viewLogin"
logoutSuccessUrl="/home/viewHome"
loginFailureUrl="/auth/viewLogin?login_error=1"
accessDeniedUrl="/auth/viewAccessDenied"
dataSource="egov.dataSource"
jdbcUsersByUsernameQuery="SELECT USER_ID, ESNTL_ID AS PASSWORD, 1 ENABLED, USER_NM, USER_ZIP,
USER_ADRES, USER_EMAIL, USER_SE, ORGNZT_ID, ESNTL_ID,
(select a.ORGNZT_NM from COMTNORGNZTINFO a where a.ORGNZT_ID = m.ORGNZT_ID) ORGNZT_NM
FROM COMVNUSERMASTER m WHERE CONCAT(USER_SE, USER_ID) = ?"
jdbcAuthoritiesByUsernameQuery="SELECT A.SCRTY_DTRMN_TRGET_ID USER_ID, A.AUTHOR_CODE AUTHORITY
FROM COMTNEMPLYRSCRTYESTBS A, COMVNUSERMASTER B
WHERE A.SCRTY_DTRMN_TRGET_ID = B.ESNTL_ID AND B.USER_ID = ?"
jdbcMapClass="egovframework.com.sec.security.common.EgovSessionMapping"
requestMatcherType="regex"
hash="plaintext"
hashBase64="false"
concurrentMaxSessons="1"
concurrentExpiredUrl="/auth/viewLogin"
defaultTargetUrl="/home/viewHome"
sniff="true"
xframeOptions="SAMEORIGIN"
xssProtection="true"
csrf="false"
/>
</beans>
전자정부 3.9를 사용하고 있고 문서들이 최신화되어있지 않아서 설정에 어려움이 있었습니다.
EgovWebApplicationInitializer << 위키에보면 이런설정을 해야한다는 것은 어느곳에도 없어서 우여곡절 끝에 어찌 저찌 찾아서
로그인 까지는 된것 같습니다.
로그인 처리 후 홈으로 들어오면
// 인증여부
boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
// 권한정보
List<String> authoroities = EgovUserDetailsHelper.getAuthorities();
// 인증사용자 객체
Object o = EgovUserDetailsHelper.getAuthenticatedUser();
이런 정보들을 가져올수있습니다.
------------------ 궁금한점 ------------------------
현재 로그인을 하지 않고도 모든 URL에 접근이 됩니다.
시큐리티 필터가 인증체크할 URL을 설정하고 거기서 권한 을 체크할텐데 필터를 안타는건지 어떤건지 잘모르겠습니다.
어디에 설정을 해야 로그인 하지 않은 경우 로그인페이지로 이동이될까요?
A
안녕하세요.
표준프레임워크센터 입니다.
시큐리티 간소화 서비스의 예시프로젝트를 배포하고 있습니다.
다음 URL주소에서
공통컴포넌트 다운로드를 참고하시면 됩니다.
https://www.egovframe.go.kr/EgovEnvReleaseCom.jsp?menu=3&submenu=4&leftsub=2
다음 링크를 다운로드 받아 임포트 하시면 됩니다.
"공통컴포넌트 3.9.0 all-in-one 배포파일 (2020.03.05)"
다음 설정파일에서
/src/main/resources/egovframework/egovProps/globals.properties
Globals.Auth = security 설정이 되어야 시큐리티 간소화 모드로 동작을 하게 됩니다.
세부적인 가이드 내용은 다음 위키를 참조하실수 있습니다.
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:com:v3.9:init_guide
해당 웹문서에서 [보안]그룹의 다음 페이지를 참조하시면 됩니다.
* 권한관리
- 권한관리 기능
- 권한별 롤관리
* 권한그룹관리
* 그룹관리
* 롤관리
관련파일 및 클래스, 테이블 정보등을 안내하고 있으며
화면예시를 참고하실수 있습니다.
실행환경에서 해당기능
다음 위키페이지를 참조하실수 있습니다.
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rtea3.9
다음 부분을 참조 하실수 있습니다.
* Server Security
Architecture
Authentication
Authorization
설정 간소화
예시 프로젝트 구동하히고
테스트및 검토해보시는게 가장 편리한 방법일듯 합니다.
감사합니다.
표준프레임워크센터 입니다.
시큐리티 간소화 서비스의 예시프로젝트를 배포하고 있습니다.
다음 URL주소에서
공통컴포넌트 다운로드를 참고하시면 됩니다.
https://www.egovframe.go.kr/EgovEnvReleaseCom.jsp?menu=3&submenu=4&leftsub=2
다음 링크를 다운로드 받아 임포트 하시면 됩니다.
"공통컴포넌트 3.9.0 all-in-one 배포파일 (2020.03.05)"
다음 설정파일에서
/src/main/resources/egovframework/egovProps/globals.properties
Globals.Auth = security 설정이 되어야 시큐리티 간소화 모드로 동작을 하게 됩니다.
세부적인 가이드 내용은 다음 위키를 참조하실수 있습니다.
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:com:v3.9:init_guide
해당 웹문서에서 [보안]그룹의 다음 페이지를 참조하시면 됩니다.
* 권한관리
- 권한관리 기능
- 권한별 롤관리
* 권한그룹관리
* 그룹관리
* 롤관리
관련파일 및 클래스, 테이블 정보등을 안내하고 있으며
화면예시를 참고하실수 있습니다.
실행환경에서 해당기능
다음 위키페이지를 참조하실수 있습니다.
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rtea3.9
다음 부분을 참조 하실수 있습니다.
* Server Security
Architecture
Authentication
Authorization
설정 간소화
예시 프로젝트 구동하히고
테스트및 검토해보시는게 가장 편리한 방법일듯 합니다.
감사합니다.