전자정부프레임워크 3.6에서 security 사용시
- 작성자 :
- 홍*제
- 작성일 :
- 2017-07-17 14:37:36
- 조회수 :
- 3,193
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
안녕하세요.
전자정부프레임워크 v3.6으로 프로젝트를 진행하고 있습니다.
security 방식으로 세팅하고
로그인 시 매칭이 성공해도, 실패해도 해댱 URL이동합니다. 매칭이 실패하면 설정된 URL( accessDeniedUrl="/sec/ram/accessDenied.do")
로 이동해야 하는데 그냥 실패했다는 메시지 출력 후 해당 URL로 이동합니다.
3.6 버젼에서 설정을 어떻게 수정해야 하는지 살펴봐 주시기 바립니다.
아래 일부 로그 입니다. 전체 로그는 파일로 첨부합니다.
그럼 수고하십시요.
---------------------
실패 예시
2017-07-17 14:23:16,736 DEBUG [org.springframework.security.web.util.matcher.RegexRequestMatcher] Checking match of request : '/main/moveToPage.do'; against '/sec/ram/EgovAuthorList.do'
2017-07-17 14:23:16,736 DEBUG [org.springframework.security.web.access.intercept.FilterSecurityInterceptor] Public object - authentication not attempted
성공예시
2017-07-17 14:23:16,762 DEBUG [org.springframework.security.web.util.matcher.RegexRequestMatcher] Checking match of request : '/sec/ram/EgovAuthorList.do'; against '/sec/ram/EgovAuthorList.do'
2017-07-17 14:23:16,762 DEBUG [org.springframework.security.web.access.intercept.FilterSecurityInterceptor] Secure object: FilterInvocation: URL: /sec/ram/EgovAuthorList.do; Attributes: [ROLE_USER]
2017-07-17 14:23:16,762 DEBUG [org.springframework.security.web.access.intercept.FilterSecurityInterceptor] Previously Authenticated: org.springframework.security.authentication.UsernamePasswordAuthenticationToken@1e4ec6e6: Principal: egovframework.rte.fdl.security.userdetails.EgovUserDetails@4c055df: Username: TEST1; Password: [PROTECTED]; Enabled: true; AccountNonExpired: true; credentialsNonExpired: true; AccountNonLocked: true; Granted Authorities: IS_AUTHENTICATED_ANONYMOUSLY,IS_AUTHENTICATED_FULLY,IS_AUTHENTICATED_REMEMBERED,ROLE_ANONYMOUS,ROLE_USER; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@21a2c: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: 968E2B48EF49E9397E762B6067F93FA4; Granted Authorities: IS_AUTHENTICATED_ANONYMOUSLY, IS_AUTHENTICATED_FULLY, IS_AUTHENTICATED_REMEMBERED, ROLE_ANONYMOUS, ROLE_USER
2017-07-17 14:23:16,762 DEBUG [org.springframework.security.access.vote.AffirmativeBased] Voter: org.springframework.security.access.vote.RoleVoter@7cc629fb, returned: 1
2017-07-17 14:23:16,762 DEBUG [org.springframework.security.web.access.intercept.FilterSecurityInterceptor] Authorization successful
전자정부프레임워크 v3.6으로 프로젝트를 진행하고 있습니다.
security 방식으로 세팅하고
로그인 시 매칭이 성공해도, 실패해도 해댱 URL이동합니다. 매칭이 실패하면 설정된 URL( accessDeniedUrl="/sec/ram/accessDenied.do")
로 이동해야 하는데 그냥 실패했다는 메시지 출력 후 해당 URL로 이동합니다.
3.6 버젼에서 설정을 어떻게 수정해야 하는지 살펴봐 주시기 바립니다.
아래 일부 로그 입니다. 전체 로그는 파일로 첨부합니다.
그럼 수고하십시요.
---------------------
실패 예시
2017-07-17 14:23:16,736 DEBUG [org.springframework.security.web.util.matcher.RegexRequestMatcher] Checking match of request : '/main/moveToPage.do'; against '/sec/ram/EgovAuthorList.do'
2017-07-17 14:23:16,736 DEBUG [org.springframework.security.web.access.intercept.FilterSecurityInterceptor] Public object - authentication not attempted
성공예시
2017-07-17 14:23:16,762 DEBUG [org.springframework.security.web.util.matcher.RegexRequestMatcher] Checking match of request : '/sec/ram/EgovAuthorList.do'; against '/sec/ram/EgovAuthorList.do'
2017-07-17 14:23:16,762 DEBUG [org.springframework.security.web.access.intercept.FilterSecurityInterceptor] Secure object: FilterInvocation: URL: /sec/ram/EgovAuthorList.do; Attributes: [ROLE_USER]
2017-07-17 14:23:16,762 DEBUG [org.springframework.security.web.access.intercept.FilterSecurityInterceptor] Previously Authenticated: org.springframework.security.authentication.UsernamePasswordAuthenticationToken@1e4ec6e6: Principal: egovframework.rte.fdl.security.userdetails.EgovUserDetails@4c055df: Username: TEST1; Password: [PROTECTED]; Enabled: true; AccountNonExpired: true; credentialsNonExpired: true; AccountNonLocked: true; Granted Authorities: IS_AUTHENTICATED_ANONYMOUSLY,IS_AUTHENTICATED_FULLY,IS_AUTHENTICATED_REMEMBERED,ROLE_ANONYMOUS,ROLE_USER; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@21a2c: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: 968E2B48EF49E9397E762B6067F93FA4; Granted Authorities: IS_AUTHENTICATED_ANONYMOUSLY, IS_AUTHENTICATED_FULLY, IS_AUTHENTICATED_REMEMBERED, ROLE_ANONYMOUS, ROLE_USER
2017-07-17 14:23:16,762 DEBUG [org.springframework.security.access.vote.AffirmativeBased] Voter: org.springframework.security.access.vote.RoleVoter@7cc629fb, returned: 1
2017-07-17 14:23:16,762 DEBUG [org.springframework.security.web.access.intercept.FilterSecurityInterceptor] Authorization successful
A
안녕하세요.
해당 사항은 시스템에 *.do로 들어오는 모든 request에 대하여 접근제어를 하지 않아 발생하는 사항입니다.
권한 실패시에도 해당 URL로 이동되어지는 부분은 권한 체크에서 denied가 발생한 것이 아니라
권한 체크를 skip하였기 때문입니다.
즉 /main/moveToPage.do로 들어오는 패턴은 권한 체크를 할 URL 패턴이 존재하지 않아
권한 체크 불필요 주소로 인식하여 통과하여 authentication not attempted 로 skip하였습니다.
모든 *.do 주소를 제어하시려면
admin권한자에게 모든 접근제한롤을 설정하시면 이하 ROLE_USER(TEST1)은 주어진 권한 이외의 주소를 접근이 제한됩니다.
저희 공통컴포넌트를 설치하셨으면 롤권한(ID는 web-000003)을 admin권한자에서 설정하시면 됩니다.
그리고 이 롤권한은 오직 admin만 가지고 있어야 합니다.
감사합니다.
해당 사항은 시스템에 *.do로 들어오는 모든 request에 대하여 접근제어를 하지 않아 발생하는 사항입니다.
권한 실패시에도 해당 URL로 이동되어지는 부분은 권한 체크에서 denied가 발생한 것이 아니라
권한 체크를 skip하였기 때문입니다.
즉 /main/moveToPage.do로 들어오는 패턴은 권한 체크를 할 URL 패턴이 존재하지 않아
권한 체크 불필요 주소로 인식하여 통과하여 authentication not attempted 로 skip하였습니다.
모든 *.do 주소를 제어하시려면
admin권한자에게 모든 접근제한롤을 설정하시면 이하 ROLE_USER(TEST1)은 주어진 권한 이외의 주소를 접근이 제한됩니다.
저희 공통컴포넌트를 설치하셨으면 롤권한(ID는 web-000003)을 admin권한자에서 설정하시면 됩니다.
그리고 이 롤권한은 오직 admin만 가지고 있어야 합니다.
감사합니다.