정적콘텐츠 등록 후 디렉토리URL 접근에 대하여
- 작성자 :
- 조*석
- 작성일 :
- 2017-05-17 11:40:30
- 조회수 :
- 1,624
- 구분 :
- 운영환경
- 진행상태 :
- 완료
Q
앞전에 문의드린 답변으로 해결이 어려워
다른각도로 질문드릴까합니다.
<mvc:resources mapping="/css/**" location="/css/" />
와 같은 형태로 정적리소스를 등록하였습니다.
모든것이 정상적이지만 공공기관서비스이다보니 URL 접근에 대한 보안이슈가 제기되었는데
http://ip주소/portal/
여기까지가 서비스 컨텍스트입니다.
문제는 정적리소스가 포함된 하위 폴더에 대해 매핑되는 서블릿이 없다는것입니다.
예컨대, http://ip주소/portal/images/button/
이렇게 주소를 입력하면 5분동안 응답대기 상태에 빠져있다가
처리가 불가하여서인지 첨부한 페이지로 결과가 리턴됩니다.
무슨 이유에서인지
mvc resource mapping과 jeus 조합에서만 그렇습니다. (톰캣은 문제가 안됩니다.)
또한 resource mapping 대신에
<mvc:default-servlet-handler default-servlet-name="WorkerServlet"/> 구문을 사용하면
윈도우의 jeus 는 문제가 없으나, 리눅스의 jeus에는 문제가 됩니다.
이 방법을 사용하는게 최선인것같은데 해결되지 않아 어쩔 수 없이
<mvc:resources mapping="/css/**" location="/css/" />
<mvc:resources mapping="/html/**" location="/html/" />
<mvc:resources mapping="/images/**" location="/images/" />
<mvc:resources mapping="/js/**" location="/js/" />
<mvc:resources mapping="/ui/**" location="/ui/" />
이렇게 썼습니다.
정리하면
http://ip주소/portal/images/button/이 아닌
http://ip주소/portal/images/까지만 하면 404페이지로 이동합니다(이렇게 되는게 원하는 응답이며 디렉터리 인덱싱옵션은 OFF입니다)
그런데 아래 조건에서 문제가 발생됩니다.
정적리소스 폴더를 URL로 접근(문제X: 에러페이지로 연결)
정적리소스 폴더의 하위 폴더에 대한 접근(문제 :응답대기 후 첨부한 파일의 결과 리턴)
mvc location 매핑해놓은것에서 충돌이 발생하거나
처리해줄 서블릿이 없는게 결국 이 문제를 야기하는것으로 추정하고있습니다만
질문 드리고 싶은 것은 WAS에서 디렉토리 인덱싱 옵션이 비활성이라는 전제하에서
정적리소스 파일이 아닌 정적 리소스의 폴더에 접근할때 에러페이지로 가도록
따로 명시해주어야 하는 부분이 있나요?
스프링 자체적으로 파일에 대한 URL호출이 아닌, 폴더의 경우에는 자동적으로 에러페이지로 연결되는건가요
부탁드립니다.
다른각도로 질문드릴까합니다.
<mvc:resources mapping="/css/**" location="/css/" />
와 같은 형태로 정적리소스를 등록하였습니다.
모든것이 정상적이지만 공공기관서비스이다보니 URL 접근에 대한 보안이슈가 제기되었는데
http://ip주소/portal/
여기까지가 서비스 컨텍스트입니다.
문제는 정적리소스가 포함된 하위 폴더에 대해 매핑되는 서블릿이 없다는것입니다.
예컨대, http://ip주소/portal/images/button/
이렇게 주소를 입력하면 5분동안 응답대기 상태에 빠져있다가
처리가 불가하여서인지 첨부한 페이지로 결과가 리턴됩니다.
무슨 이유에서인지
mvc resource mapping과 jeus 조합에서만 그렇습니다. (톰캣은 문제가 안됩니다.)
또한 resource mapping 대신에
<mvc:default-servlet-handler default-servlet-name="WorkerServlet"/> 구문을 사용하면
윈도우의 jeus 는 문제가 없으나, 리눅스의 jeus에는 문제가 됩니다.
이 방법을 사용하는게 최선인것같은데 해결되지 않아 어쩔 수 없이
<mvc:resources mapping="/css/**" location="/css/" />
<mvc:resources mapping="/html/**" location="/html/" />
<mvc:resources mapping="/images/**" location="/images/" />
<mvc:resources mapping="/js/**" location="/js/" />
<mvc:resources mapping="/ui/**" location="/ui/" />
이렇게 썼습니다.
정리하면
http://ip주소/portal/images/button/이 아닌
http://ip주소/portal/images/까지만 하면 404페이지로 이동합니다(이렇게 되는게 원하는 응답이며 디렉터리 인덱싱옵션은 OFF입니다)
그런데 아래 조건에서 문제가 발생됩니다.
정적리소스 폴더를 URL로 접근(문제X: 에러페이지로 연결)
정적리소스 폴더의 하위 폴더에 대한 접근(문제 :응답대기 후 첨부한 파일의 결과 리턴)
mvc location 매핑해놓은것에서 충돌이 발생하거나
처리해줄 서블릿이 없는게 결국 이 문제를 야기하는것으로 추정하고있습니다만
질문 드리고 싶은 것은 WAS에서 디렉토리 인덱싱 옵션이 비활성이라는 전제하에서
정적리소스 파일이 아닌 정적 리소스의 폴더에 접근할때 에러페이지로 가도록
따로 명시해주어야 하는 부분이 있나요?
스프링 자체적으로 파일에 대한 URL호출이 아닌, 폴더의 경우에는 자동적으로 에러페이지로 연결되는건가요
부탁드립니다.
A
안녕하세요.
표준프레임워크 센터입니다.
질문 드리고 싶은 것은 WAS에서 디렉토리 인덱싱 옵션이 비활성이라는 전제하에서
정적리소스 파일이 아닌 정적 리소스의 폴더에 접근할때 에러페이지로 가도록
따로 명시해주어야 하는 부분이 있나요?
> WAS의 제품마다 성격이 달라서 구입하신 제품에 문의를 하셔야 될꺼 같습니다.
스프링 자체적으로 파일에 대한 URL호출이 아닌, 폴더의 경우에는 자동적으로 에러페이지로 연결되는건가요
> 일반적으로 자동으로 에러 페이지가 호출됩되니다. WAS 옵션으로 제어 가능합니다.
표준프레임워크 센터입니다.
질문 드리고 싶은 것은 WAS에서 디렉토리 인덱싱 옵션이 비활성이라는 전제하에서
정적리소스 파일이 아닌 정적 리소스의 폴더에 접근할때 에러페이지로 가도록
따로 명시해주어야 하는 부분이 있나요?
> WAS의 제품마다 성격이 달라서 구입하신 제품에 문의를 하셔야 될꺼 같습니다.
스프링 자체적으로 파일에 대한 URL호출이 아닌, 폴더의 경우에는 자동적으로 에러페이지로 연결되는건가요
> 일반적으로 자동으로 에러 페이지가 호출됩되니다. WAS 옵션으로 제어 가능합니다.