spring-boot - 为 Cloud Foundry 上的 SpringBoot-Server 启用/禁用 HTTP 压缩
问题描述
我在 Cloud Foundry 上有一个 Spring Boot 应用程序,并且想要停用以下 HTTP-Header 中使用的 HTTP 压缩: Accept-Encoding: gzip, deflate 。我想防止 BREACH 攻击。
manifest.yml 中是否有一个条目,我可以使用它禁用此压缩?
解决方案
您的应用程序没有manifest.yml
(至少对于 cf cli's 没有manifest.yml
)属性。请记住,这manifest.yml
就是控制(或自动化)cf cli 以及它将如何将您的应用程序推送到 Cloud Foundry 的内容。尽管在您可以部署的任何类型的应用程序中,它都是通用的。最好的方法是让 cli 将信息传递给您的应用程序。您的应用程序必须寻找该信息才能改变任何行为。
幸运的是,Spring Boot 可以从各个地方使用外部配置属性设置。其中两个,环境变量和系统属性,都可以通过manifest.yml
. 此外,Spring Boot 提供了一些属性来控制它使用的压缩。
如果要禁用压缩,只需设置server.compression.enabled
为false
.
综上所述,您可以通过 manifest.yml 通过添加一个env:
块并定义适当的环境变量来配置此属性。
前任:
...
env:
SPRING_COMPRESSION_ENABLED: false
...
或者,您可以设置系统属性:
前任:
...
env:
JAVA_OPTS: '-Dspring.compression.enabled=false'
...
这只会关闭压缩,如果您查看文档参考,Spring Boot 还有其他属性可用于更精细地调整压缩。您可以按照我上面描述的相同方式应用这些或任何其他 Spring Boot 配置属性。
推荐阅读
- ssl - Vault operator raft join getting : [ERROR] core: failed to join raft cluster: error="failed to join any raft leader node"
- html - Chrome Android URL Bar破坏了绝对定位元素的位置
- c# - 更改所有表格尺寸(查找和替换)
- github - 我在哪里可以看到 GitHub 最新存储库的列表?
- logging - js控制台日志字符串格式化起点
- java - 从二叉树中获取所有元素到列表 - JAVA
- scala - 将递归函数从python转换为scala
- python - 从自身内部重新启动脚本后的语法错误
- odbc - 无法从 Tableau Server 连接 clickhouse ODBC
- python - 如何修复:ValueError:X 有 6 个特征,但 DecisionTreeClassifier 期望 4 个特征作为输入