우리의 응용 프로그램은 Java/Spring3/Spring MVC/Hibernate 기반 응용 프로그램입니다.특정 파일 형식에 대한 요청을 차단하는 방법은 무엇입니까?
우리는 서버 컴퓨터의 여러 위치에 저장되는 리소스가 있습니다. 위치는 데이터베이스에 저장됩니다. 기본적으로 웹 애플리케이션이 /<our-app>/page/file.kml
과 같은 uri 파일을 요청할 때이 호출을 가로 챌 필요가있을 때 요청 된 URI를 무시하고 파일의 실제 위치를 찾아 응답으로 반환합니다.
servlet-context.xml
에는 몇 가지 인터셉터가 있습니다.
<interceptors>
<interceptor>
<mapping path="/page/**" />
<beans:bean class="com.ourapp.AuthenticationInterceptor" />
</interceptor>
<interceptor>
<mapping path="/page/*.kml" />
<beans:bean class="com.ourapp.KmlInterceptor" />
</interceptor>
</interceptors>
첫 번째 차단은 우리의 인증을위한 것이며 훌륭한 작동합니다. 기본적으로 사용자가 모든 요청에 대해 로그인했는지 확인하십시오.
두 번째 인터셉터는 geoXML3에서 KML 파일에 대한 요청을 가로 채기 위해 설정 한 것입니다. 요격기가 발사 한 것 같지 않습니까? (즉, KmlInterceptor.preHandle이 호출되지 않습니다.).
올바른 매핑이 있습니까?
이렇게하면 특정 파일 형식에 대한 요청을 가로 채고 다른 곳에서 검색된 실제 파일을 반환 할 수 있습니까?
파일'/ pages/something.kml'의 경로입니까, 아니면 하위 디렉토리가 더 있습니까? 그렇다면'/ page/**/*. kml'으로 시도해보십시오. –
요점은 /page/something.kml에 파일이 없다는 것입니다. 우리는 그 uri에 대한 요청을 잡아서 파일을 다른 곳에서 찾은 다음 응답에 반환하려고합니다. 즉 웹 앱이 실제로 /page/something.kml에서 파일을 찾도록하지 마십시오. –
네, 이해했습니다. 가짜 문서가'/ pages/adirectory/file.kml'에 있다면 표현식이 잘못 될 수 있기 때문에 묻고 있습니다. –