使用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();
}
}
問題解決。