DB에 저장된 url롤 차단이 동작하지 않아, 로그인하지않아도 관리자페이지들에 바로 접근할수 있는 오류
- 작성자 :
- 전*현
- 작성일 :
- 2011-11-25 14:06:20
- 조회수 :
- 2,053
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
먼저 이전 답변에 감사드립니다. m(__)m
알려주신 답변과 키워드로 검색을 해보니 자료도 나오고, 메뉴얼도 참조해서
이젠 어느정도 감을 잡은 상태입니다.
근데 또다른 문제에 봉착을 했습니다.
DB쪽에 url 롤과 관련하여 ROLE_ANONYMOUS 에는
익명게시판이나 몇개의 url을 빼곤 모두 차단된 상태입니다.
공통프레임워크의 권한롤관리(/cmm/sec/ram/EgovAuthorRoleList.do)에서
ROLE_ANONYMOUS로 확인해보았습니다.
근데 로그인정책관리(/com/uat/uia/selectLoginPolicyList.do)에 접근을 하게 되면,
분명히 차단되어야 할 url임에도 불구하고 로그인 안한상태에서도 그냥 열립니다.
여기 게시판에서 검색해보니, 롤 관련해서 로그를 보려면 스프링프레임워크의 로그레벨을
DEBUG로 해놓고 보면 정보가 나온다고 해서, 그렇게 바꾸고 상기 url을 다시 접근해보니
[Candidate is : '/com/uat/uia/selectLoginPolicyList.do'; pattern is /.*; matched=true;]
라고 찍혀서요.
요게 스프링쪽의 jar파일 압축풀고 해당 클래스파일 역컴파일해서 내용을 보니.
public List getFilters(String url) {
~~~~
Iterator filterChains = this.filterChainMap.entrySet().iterator();
~~~
위에 로그 찍는 부분...
}
조기 위에서 this.filterChainMap 이놈이 결국 스프링쪽의 context-security.xml 의 정보를 가지고
오는거라고 하던데요.
이 xml에서 어떤 부분때문에 왜 저 패턴이 pattern is /.*; 이렇게 찍히는지 궁금합니다.
이 xml을 첨부파일로 올리고는 싶은데 제 로컬컴퓨터에만 있고, 글은 스마트폰으로 쓰는거라...
어디쪽의 부분을 좀 잘 봐야되는지 조언좀 부탁드리겠습니다.
PS : 정상대로라고 한다면요. DB상에 저장되어있는 롤 규칙들에 의해서 접근한 url과 DB에 저장된 롤패턴을 비교한후 mached가 false로 나오고, 해당 페이지에 접근하지 못하고 에러페이지나 권한없다는 경고페이지같은것으로 이동하게 되는건가요? 커스터마이징 전혀 안한 순수 표준프레임워크로만 구동시에요~
알려주신 답변과 키워드로 검색을 해보니 자료도 나오고, 메뉴얼도 참조해서
이젠 어느정도 감을 잡은 상태입니다.
근데 또다른 문제에 봉착을 했습니다.
DB쪽에 url 롤과 관련하여 ROLE_ANONYMOUS 에는
익명게시판이나 몇개의 url을 빼곤 모두 차단된 상태입니다.
공통프레임워크의 권한롤관리(/cmm/sec/ram/EgovAuthorRoleList.do)에서
ROLE_ANONYMOUS로 확인해보았습니다.
근데 로그인정책관리(/com/uat/uia/selectLoginPolicyList.do)에 접근을 하게 되면,
분명히 차단되어야 할 url임에도 불구하고 로그인 안한상태에서도 그냥 열립니다.
여기 게시판에서 검색해보니, 롤 관련해서 로그를 보려면 스프링프레임워크의 로그레벨을
DEBUG로 해놓고 보면 정보가 나온다고 해서, 그렇게 바꾸고 상기 url을 다시 접근해보니
[Candidate is : '/com/uat/uia/selectLoginPolicyList.do'; pattern is /.*; matched=true;]
라고 찍혀서요.
요게 스프링쪽의 jar파일 압축풀고 해당 클래스파일 역컴파일해서 내용을 보니.
public List getFilters(String url) {
~~~~
Iterator filterChains = this.filterChainMap.entrySet().iterator();
~~~
위에 로그 찍는 부분...
}
조기 위에서 this.filterChainMap 이놈이 결국 스프링쪽의 context-security.xml 의 정보를 가지고
오는거라고 하던데요.
이 xml에서 어떤 부분때문에 왜 저 패턴이 pattern is /.*; 이렇게 찍히는지 궁금합니다.
이 xml을 첨부파일로 올리고는 싶은데 제 로컬컴퓨터에만 있고, 글은 스마트폰으로 쓰는거라...
어디쪽의 부분을 좀 잘 봐야되는지 조언좀 부탁드리겠습니다.
PS : 정상대로라고 한다면요. DB상에 저장되어있는 롤 규칙들에 의해서 접근한 url과 DB에 저장된 롤패턴을 비교한후 mached가 false로 나오고, 해당 페이지에 접근하지 못하고 에러페이지나 권한없다는 경고페이지같은것으로 이동하게 되는건가요? 커스터마이징 전혀 안한 순수 표준프레임워크로만 구동시에요~
A
안녕하세요.. 전상현님..
기본적으로 secured resources 테이블(접근 제어 패턴이 등록된 테이블)에 매칭되는 패턴이 없으면.. anonymous로 접근할 수 있습니다.
(패턴을 등록하고.. ROLE_ANONYMOUS로 매핑한 것과 같은 효과)
즉, /cmm/sec/ram/EgovAuthorRoleList.do가 매칭되는 것이 없어 해당 URL을 접근하실 수 있는 것 같습니ㅏ..
통제를 원하시면.. 위 패턴을 등록해 놓으시고.. 특정 ROLE에 할당하시면 되실 것 같습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.
기본적으로 secured resources 테이블(접근 제어 패턴이 등록된 테이블)에 매칭되는 패턴이 없으면.. anonymous로 접근할 수 있습니다.
(패턴을 등록하고.. ROLE_ANONYMOUS로 매핑한 것과 같은 효과)
즉, /cmm/sec/ram/EgovAuthorRoleList.do가 매칭되는 것이 없어 해당 URL을 접근하실 수 있는 것 같습니ㅏ..
통제를 원하시면.. 위 패턴을 등록해 놓으시고.. 특정 ROLE에 할당하시면 되실 것 같습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.