現在、私は vaadin プロジェクトに取り組んでおり、プロジェクトでのクリックジャッキング攻撃の防止に取り組んでいます。解決策を検索した後、web.xml に次のスニペットを追加するとうまくいくことがわかりました。
<filter>
<filter-name>httpHeaderSecurity</filter-name>
<filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
<async-supported>true</async-supported>
<init-param>
<param-name>antiClickJackingEnabled</param-name>
<param-value>true</param-value>
</init-param>
<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>
</filter-mapping>
pom.xml に次の依存関係を追加しました。
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina</artifactId>
<version>9.0.2</version>
</dependency>
私はpayaraサーバーでプロジェクトを実行しています。
プロジェクトは実行されますが、次のエラーがスローされます。
原因: java.lang.ClassNotFoundException: org.apache.catalina.filters.HttpHeaderSecurityFilter が org.glassfish.main.web.core [69] で org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java: 1532) org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75) org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955) で java.lang.ClassLoader. loadClass(ClassLoader.java:357) org.apache.catalina.core.ApplicationFilterConfig.loadFilterClass(ApplicationFilterConfig.java:283) org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:253) org.apache .catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:123) ... 50 以上
つまり、クリックジャッキング攻撃を防ぐための私のソリューションは機能しません:)
どんな助けでも大歓迎です:)。