1. 程式人生 > >SpringSecurity限制iframe引用頁面。出現X-Frame-Options deny問題

SpringSecurity限制iframe引用頁面。出現X-Frame-Options deny問題

由於專案中集成了springSecurity框架,導致頁面無法被iframe引用。

網上解決辦法很兩種,一種是修改web.xml,增加fiflter過濾器,我試了並沒解決問題。

Spring Security下,X-Frame-Options預設為DENY,非Spring Security環境下,X-Frame-Options的預設大多也是DENY,這種情況下,瀏覽器拒絕當前頁面載入任何Frame頁面,設定含義如下:

    DENY:瀏覽器拒絕當前頁面載入任何Frame頁面
    SAMEORIGIN:frame頁面的地址只能為同源域名下的頁面
    ALLOW-FROM:origin為允許frame載入的頁面地址。

解決辦法:

在Spring-Security.xml檔案裡配置如下:

這種配置是不同源域名下也可訪問:

宣告一下:若為ALLOW-FROM模式,必須配置strategy屬性和value屬性。否則專案啟動報錯。

value屬性應該就是需要被外部iframe引用的頁面。

<!-- 解決iframe無法引入頁面問題 -->
<security:http auto-config="true" use-expressions="true">
        <security:headers>
        	<security:frame-options policy="ALLOW-FROM" strategy="static" value="/chart.html**"/>
        </security:headers>
</security:http>

若同源域名下則可配置即可解決(不用設定strategy和value屬性):

<security:http auto-config="true" use-expressions="true">
    <security:headers>
        <security:frame-options policy="SAMEORIGIN"/>
    </security:headers>
</security:http>

希望遇到的問題可以幫到其他人哦!!!解決了一早上~

終極解決辦法(可以嘗試一下,會有驚喜):

<security:http auto-config="true" use-expressions="true">
    <security:headers>
        <security:frame-options disabled="true"/>
    </security:headers>
</security:http>