SpringSecurity限制iframe引用頁面。出現X-Frame-Options deny問題
阿新 • • 發佈:2018-11-13
由於專案中集成了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>