2012-05-17 2 views
2
내가이 할 수 있도록 내 저지 서블릿에 대한 모든 요청을 필터링 할

에 요청 애플 리케이션 엔진 dev에 콘솔을 제외한 모든 필터링 할 수 있습니다 방법 :내가 web.xml을

<filter-mapping> 
    <filter-name>jersey</filter-name> 
    <url-pattern>*</url-pattern> 
</filter-mapping> 

불행히도을,이 잡기의 부작용이있다 dev 콘솔 (http : // localhost : 8888/_ah/admin)

"/ _ah/*"와 일치하는 경로를 필터에서 제외 할 수있는 방법이 있습니까?

아니면 같은 것을 달성하는 더 좋은 방법은 없을까요?

+1

이 봐 유무 : http://stackoverflow.com/questions/3125296/can-i -exclude-some-concrete-urls-url-pattern-inside-filter-mapping – adarshr

답변

4

@adarshr의 제안 덕분에 Jersey 필터 서블릿을 확장하여 특정 경로를 건너 뛸 수있게되었습니다. 그때 그것은 이미 init param으로 무시할 경로를 지원한다는 것을 깨달았습니다.

<init-param> 
    <param-name>com.sun.jersey.config.property.WebPageContentRegex</param-name> 
    <param-value>/(js|css|(WEB-INF/jsp)|_ah)/.*</param-value> 
</init-param> 

(이미도를 읽지 않고 어딘가의 코드에 붙여 넣은 후 그것을 사용했다!)

1

모든 필터 매핑을 구성하는 데 사용할 수있는 서블릿을 사용하는 것이 좋습니다. 따라서 servlet은 모든 쿼리를 처리하고 그에 따라 경로를 변경합니다. web.xml은 정규 표현식 매핑을 허용하지 않기 때문입니다.

그런 다음 configureServlets 우리가 다음을 수행하십시오 :

우리는 같은 일을 구글 Guice에서 guiceServlet를 사용

당신이 here 볼 수있는 주제에 대한 제안의 숫자가 있습니다
serveRegex("/(?!_ah).*").with(JerseyGateway.class); 

.