2016-01-25 2 views
12

Я добавил приведенный ниже фрагмент кода в моем tomcat web.xml, чтобы предотвратить щелчок.Вариант Xframe в tomcat 7

В разделе, чтобы добавить встроенный фильтр, я добавил

<filter> 
    <filter-name>httpHeaderSecurity</filter-name> 
    <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class> 
    <init-param> 
     <param-name>antiClickJackingOption</param-name> 
     <param-value>SAMEORIGIN</param-value> 
    </init-param> 
</filter> 

Для фильтра отображения части я добавил.

<filter-mapping> 
    <filter-name>httpHeaderSecurity</filter-name> 
    <url-pattern>/*</url-pattern> 
    <dispatcher>REQUEST</dispatcher> 
</filter-mapping> 

После редактирования и создания этих двух изменений, тестовой страницы (HTML-страницу, где я пытаюсь открыть целевую страницу в <frame>) проходит (не в состоянии открыть целевую страницу внутри фреймов).
Но страница приветствия apache дает 404 с новыми изменениями.

Пожалуйста, дайте мне знать, если у меня что-то не хватает.

ответ

11

У меня также была проблема с tomcat7 и тем же фильтром.

Первое, что вам нужно сделать, это проверить журналы tomcat под CATALINA_BASE/logs /. Найдите и откройте localhost.YYYY-MM-DD.log; там вы должны найти причину ошибки.

В моем файле журнала я имел эту ошибку:

SEVERE: Exception starting filter httpHeaderSecurity 
java.lang.ClassNotFoundException: org.apache.catalina.filters.HttpHeaderSecurityFilter 

Затем я узнал, что HttpHeaderSecurityFilter был недавно добавлен в Tomcat версии 7.0.63 (see here), но я бегу версии 7.0.52 (один который поставляется с Ubuntu 14.04 LTS).

Я решил проблему, установив новейшую версию Tomcat, и теперь фильтр работает, как ожидалось.