在Spring Boot中更改单个控制器的x-frame-options标头

时间:2018-10-02 14:56:40

标签: spring spring-boot spring-security x-frame-options

假设您有一个spring boot应用程序,而您只想创建一个可以嵌入为iFrame的页面。所有其他页面仍应具有默认的x-frame-options: deny标头。

  • 我找不到对应的注释(我希望有类似@CrossOrigin的注释,但对于标头却通用)
  • 我尝试通过httpServletResponse更改标头,但此后安全标头似乎被覆盖
  • 我尝试使用http.antmatcher("/controller").frameOptions().disable(),但这会中断其余的身份验证-并且我错过了.allow(domain)方法

我知道我可以创建一些过滤器代码,但我希望有一个更简单的解决方案。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

要仅允许特定控制器使用iframe选项,而不允许所有网站使用iframe选项,这是我的方法:

 @RequestMapping("/someiframepath")
    public String iframe(HttpServletResponse response, Model model) {
        response.setHeader("X-Frame-Options", "");
        .... DO SOMETHING ....
        return "your view";
    }

希望有帮助!