頁面嵌套拒絕連接Refused to display 'URL' in a frame because it set 'X-Frame-Options' to 'DENY'

使用activiti7整合springboot2 ,頁面以iframe形式來加載頁面。
然後瀏覽器就報錯了。

原因是因爲activiti7引入了springSecurty.

而springSecurty使用X-Frame-Options防止網頁被Frame

使用 X-Frame-Options

X-Frame-Options 有三個值:

DENY

表示該頁面不允許在 frame 中展示,即便是在相同域名的頁面中嵌套也不允許。

SAMEORIGIN

表示該頁面可以在相同域名頁面的 frame 中展示。(端口號不一致也無法展示)

ALLOW-FROM uri

表示該頁面可以在指定來源的 frame 中展示。

換一句話說,如果設置爲 DENY,不光在別人的網站 frame 嵌入時會無法加載,在同域名頁面中同樣會無法加載。另一方面,如果設置爲 SAMEORIGIN,那麼頁面就可以在同域名頁面的 frame 中嵌套。

鏈接中有解決方法,但是明顯和我要的不一樣。弄明白了X-Frame-Options 是什麼意思,並且以前也沒遇見這個問題,大概覺得問題可能是springsecurity攔截了。於是嘗試尋找security的配置文件有沒有類似方法,果然找到:

package com.st.wf.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity security) throws Exception {
        security.csrf().disable();
        //讓X-frame-options失效,去除iframe限制
        security.headers().frameOptions().disable();
    }
}

問題解決。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章