FilterSecurityInterceptor
- 작성자 :
- 최*혁
- 작성일 :
- 2010-12-16 20:15:36
- 조회수 :
- 3,190
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
수고많으십니다.
Type Mismatch를 벗어나서 테스트 진행 중에 다음과 같은 에러를 만났습니다.
어제 무한 루프를 만났다고 적었었는데요.
무한루프의 원인은 index.jsp (로그인 페이지, authentication failure url도 같은 페이지로 지정되어 있죠.) 에 접근했다가 authentication failure로 계속 같은 페이지로 이동해서 입니다.
Debug Log를 보니, ROLE_ANONYMOUS로 적절하게 권한 부여는 되었는데요.
index.jsp 페이지 접근할 때 대부분의 filter는 통과되었는 데 거의 맨 끝에 FilterSecurityInterceptor 쪽에서 AuthenticationCredentialsNotFoundException이 뜹니다.
당연히 SecurityContext에는 authentication이 없겠지요.
Spring이 ROLE_ANONYMOUS라는 걸 'ANONYMOUS 접근' 이라고 어떻게 인식하고 있을 지 궁금해지네요. (하드코딩?)
아 난해합니다.
Spring Security 정복하고 싶습니다.
추가1)
AnonymousProcessingFilter 에서 AnonymousAuthenticationToken을 생성하는 것을 보았는데요, 여기에 들어오면 Authentication은 생성되는 듯 하네요. 근데, FilterChain 구현체 내 Filter 목록을 보니까, AnonymousProcessingFilter는 빠져있네요. 이걸 추가하면 될까요? 어디에 추가해야 하나요.
p.s. 이전 질문에서 context-security.xml 은 에러나서 comment 해 놓은 것입니다.
Type Mismatch를 벗어나서 테스트 진행 중에 다음과 같은 에러를 만났습니다.
어제 무한 루프를 만났다고 적었었는데요.
무한루프의 원인은 index.jsp (로그인 페이지, authentication failure url도 같은 페이지로 지정되어 있죠.) 에 접근했다가 authentication failure로 계속 같은 페이지로 이동해서 입니다.
Debug Log를 보니, ROLE_ANONYMOUS로 적절하게 권한 부여는 되었는데요.
index.jsp 페이지 접근할 때 대부분의 filter는 통과되었는 데 거의 맨 끝에 FilterSecurityInterceptor 쪽에서 AuthenticationCredentialsNotFoundException이 뜹니다.
당연히 SecurityContext에는 authentication이 없겠지요.
Spring이 ROLE_ANONYMOUS라는 걸 'ANONYMOUS 접근' 이라고 어떻게 인식하고 있을 지 궁금해지네요. (하드코딩?)
아 난해합니다.
Spring Security 정복하고 싶습니다.
추가1)
AnonymousProcessingFilter 에서 AnonymousAuthenticationToken을 생성하는 것을 보았는데요, 여기에 들어오면 Authentication은 생성되는 듯 하네요. 근데, FilterChain 구현체 내 Filter 목록을 보니까, AnonymousProcessingFilter는 빠져있네요. 이걸 추가하면 될까요? 어디에 추가해야 하나요.
p.s. 이전 질문에서 context-security.xml 은 에러나서 comment 해 놓은 것입니다.
A
안녕하세요.. 최재혁님.
우선 secured_resources 부분에 URL 패턴 자체가 등록되지 않으면.. 인증없이 사용할 수 있습니다. (ANONYMOUS 모드로 실제 필요한 URL 패턴만 등록하는 방식)
또는 index.jsp와 같이 인증 없이 들어갈 수 있는 패턴을 추가로 등록하시고 ROLE_ANONYMOUS와 같은 롤을 할당하셔도 됩니다.
(주의 사항은 order가 있어.. order가 낮은 것이 먼저 영향을 받습니다.)
ROLE_~~ 부분은 앞에 prefix만 인식되고 뒤 부분들은 hierarchy에 의해 지정되는데.. 실제로 인식되는 부분은 "IS_~" 부분입니다.
IS_AUTHENTICATED_ANONYMOUSLY (익명사용자), IS_AUTHENTICATED_FULLY (인증사용자)
ROLE_로 시작하는 정의들은 위 IS_의 하위로 정의함으로써 ANONYMOUS 모두나 인증이 필요하냐를 정의하고 있습니다.
http://www.egovframe.org/wiki/doku.php?id=egovframework:rte:fdl:server_security:architecture 참조
그럼.. 즐거운 하루되십시오.
감사합니다.
우선 secured_resources 부분에 URL 패턴 자체가 등록되지 않으면.. 인증없이 사용할 수 있습니다. (ANONYMOUS 모드로 실제 필요한 URL 패턴만 등록하는 방식)
또는 index.jsp와 같이 인증 없이 들어갈 수 있는 패턴을 추가로 등록하시고 ROLE_ANONYMOUS와 같은 롤을 할당하셔도 됩니다.
(주의 사항은 order가 있어.. order가 낮은 것이 먼저 영향을 받습니다.)
ROLE_~~ 부분은 앞에 prefix만 인식되고 뒤 부분들은 hierarchy에 의해 지정되는데.. 실제로 인식되는 부분은 "IS_~" 부분입니다.
IS_AUTHENTICATED_ANONYMOUSLY (익명사용자), IS_AUTHENTICATED_FULLY (인증사용자)
ROLE_로 시작하는 정의들은 위 IS_의 하위로 정의함으로써 ANONYMOUS 모두나 인증이 필요하냐를 정의하고 있습니다.
http://www.egovframe.org/wiki/doku.php?id=egovframework:rte:fdl:server_security:architecture 참조
그럼.. 즐거운 하루되십시오.
감사합니다.