java - Spring Boot Actuator 添加 X-Frame-Options = DENY 到所有端点(特别是错误端点)

标签 java spring spring-boot

我正在尝试将所有管理端点的 X-Frame-Options 设置为 DENY,尤其是 /error 端点。我的 Spring Boot 应用程序的 application.properties 中有以下内容。

security.headers.frame=true
management.security.enabled=true
management.port=8001

当我转到 http://localhost:8001/error 时,我没有 X-Frame-Options header ,但是 http://localhost:8001/trace 端点确实有 header 。如何配置我的 application.properties 或者我需要重写什么来获取错误端点的响应 header ?

最佳答案

通过当前的 Spring Boot 源代码 (1.1.7.RELEASE),无论如何我看不到您可以在不完全取消安全自动配置的情况下做您想做的事。

这是因为为了使端点符合自定义 HTTP header (如 X-Frame-Options)的条件,它需要是父上下文中的一个 bean(关联的那个)与正常端口上的应用程序)实现MvcEndpoint .这样的 bean 是HealthMvcEndpoint , JolokiaMvcEndpoint等等

可以在 ManagementSecurityAutoConfiguration 的代码中查看我的声明 adove在 ManagementWebSecurityConfigurerAdapter.configure 方法中(endpointHandlerMapping 是从 MvcEndpoint 实现 bean 创建的)。

管理应用程序的错误页面是 ManagementErrorEndpoint这是在 EndpointWebMvcChildContextConfigurationerrorEndpoint 中创建的这是在创建子上下文时触发的(由于包含管理应用程序),为时已晚,无法包含在支持 HTTP header 自定义的端点中

关于java - Spring Boot Actuator 添加 X-Frame-Options = DENY 到所有端点(特别是错误端点),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26259783/

相关文章:

java - 在 Tomcat 上部署一个 SpringBoot 应用程序作为一个 WAR 包

java |垃圾收集器如何忽略没有引用的数组内存

java - 如何更改 Spring Cloud Stream 配置中所有 RabbitMQ 消费者的默认恢复间隔?

java - Spring MVC 数据绑定(bind) - 原始类型

java - 无需编辑 Supertypes java 文件即可使 Jackson 子类型可扩展

spring - Spring Boot 中的 Dispatcher Servlet

java - 在 Selenium Webdriver 中显式等待 findElements

java - 尝试使用 hibernate 4 测试记录的存在

java - 如何在测试配置中使用相同的bean但具有不同的属性?

java - 一旦另一个 spring bean 被初始化,有没有人有一个好的模式来初始化一个 spring bean?