2009-11-29 4 views
4
나는 사용자가 로그인하거나하지 않은 경우 확인하기 위해 web.xml에 필터를 사용하고

에서 필터 제외 :특정 URL의

<filter> 
    <filter-name>LoginFilter</filter-name> 
    <filter-class>com.mycompany.LoginFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>LoginFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

을 내가 스타일 시트 또는 이미지 I있을 때까지이 마법처럼 작동합니다 이 필터에서 제외하고 싶습니다. 한 가지 방법은 /private 또는 유사하게 보호 된 모든 것을 넣은 다음 url-pattern을 <url-pattern>/private/*</url-pattern>으로 설정하는 것입니다. 단점은 내 URL이 http://www.mycompany.com/mypage 대신 http://www.mycompany.com/private/mypage 인 모양입니다. 이 문제에 대한 또 다른 해결책이 있습니까, 제가 예쁜 URL을 유지하도록 하죠?

+0

그리고 특정 패턴을 제외하는 좀 더 일반적인 방법은 무엇입니까? 스프링 보안뿐만 아니라 일반적인 필터링을위한 것일까요 ?? –

+0

jaime : 대답은 일반적으로 봄에 묶이지 않은 일반적인 개념입니다. 다시 읽으십시오. –

답변

4

하나의 솔루션은 SpringSecurity (Acegi Security의 접근법) 방식이어야합니다. url-pattern에 모든 것을 포함시키고 필터 본문에서 원하지 않는 패턴을 제외 시키십시오.

+0

예, 그 방법을 구현하려고했습니다. URL을 성공적으로 감지했지만 다음에해야 할 일이 확실하지 않습니다. 필자는 필터 바디에서 a) "return"을 말하면서 (놀랍지 않게) 공백 페이지를 리턴했다. b) chain.doFilter (요청, 응답); 시작 페이지가 모든 것을로드하게되었습니다. 필터 바디를 제외 할 때의 모습을 보여줄 수 있습니까? –

+0

실제로 chain.doFilter (요청, 응답)와 함께 작동했습니다. 내가 항상 시작 페이지를 얻은 이유는 /에 설정된 URL 패턴을 가진 시작 페이지 때문이었습니다. /에 매핑 된 서블릿이 없다는 것을 확실히했을 때, 이것은 실제로 작동했습니다 :-) –

관련 문제