我有一个非常简单的Spring Boot应用程序。它只是一个zuul反向代理。除了基本设置之外,没有任何安全或其他东西可以通过eureka和路径映射发现我们的服务。我试图防止我们的执行器endpoint公开暴露,但仍然希望健康检查endpoint用于我们的ELB,但不希望它报告它所知道的所有服务的健康(我希望它是敏感的)。在试图弄清楚我需要设置什么属性来获得预期的行为时,我正在经历非常意外的行为。
例如,当我设置属性endpoints.sensitive=true
时,这不会将健康检查终结点的默认值更改为敏感。这似乎与文件上说的相反。
http://docs.spring.io/spring-boot/docs/1.4.2.release/reference/htmlsingle/#production-ready-customizing-endpoints
同样,您也可以选择全局设置所有endpoint的“敏感”标志。默认情况下,敏感标志取决于endpoint的类型(参见上表)。例如,要将所有endpoint标记为敏感endpoint,信息除外:
Endpoints.Sensitive=true
所以这是很好的,我的健康检查endpoint现在只报告向上或向下,没有其他。但现在我希望健康检查endpoint是唯一启用的endpoint。因此,我设置了endpoints.enabled=false
和endpoints.health.enabled=true
,这将禁用除health以外的所有endpoint。然而,事实似乎并非如此。在我的实例中,我可以点击/routes
、/resume
、/pause
、/hystrix.stream
等。只有在使用endpoint.enabled=false
禁用所有endpoint,然后使用endpoint.actuator.enabled=true
启用执行器endpoint时,我才能确定这一点,这允许我命中执行器endpoint,执行器endpoint随后报告这些endpoint已启用。
{
"links": [
{
"rel": "self",
"href": "http://localhost:9200/actuator"
},
{
"rel": "resume",
"href": "http://localhost:9200/resume"
},
{
"rel": "pause",
"href": "http://localhost:9200/pause"
},
{
"rel": "hystrix.stream",
"href": "http://localhost:9200/hystrix.stream"
},
{
"rel": "env",
"href": "http://localhost:9200/env"
},
{
"rel": "routes",
"href": "http://localhost:9200/routes"
},
{
"rel": "health",
"href": "http://localhost:9200/health"
},
{
"rel": "refresh",
"href": "http://localhost:9200/refresh"
},
{
"rel": "restart",
"href": "http://localhost:9200/restart"
}
]
}
我希望只看到我显式启用的两个endpoint。
{
"links": [
{
"rel": "self",
"href": "http://localhost:9200/actuator"
},
{
"rel": "health",
"href": "http://localhost:9200/health"
}
]
}
单独禁用每个endpoint似乎不会将它们从执行器endpoint中删除,但现在当尝试访问时,我会得到一个“此endpoint已禁用”消息,这是一个改进。但是,我似乎无法禁用routes
或`hystrix.stream*endpoint,因为似乎没有公开此功能的配置。
所有这些都说了,我在想这是预期的行为还是这是一个bug?
我遇到了和你在这里描述的一样的问题。请先检查您的Spring启动版本!全局“Endpoints.Sensitive”设置在某些指定的spring启动版本上未生效。(不确定版本号的确切位置。这似乎是spring Boot中的一个重构回归。)
这里有一些参考资料。
在我将Spring Boot更新到1.3.0版本之后,设置“endpoints.sensitive=true”对我来说是正确的。希望这对你也有用。祝你好运,伙计。
最后是持久性上下文配置: 我很感谢你的帮助。
我想使用查找从一个集合中获取一些数据并将其放入另一个集合中。 在localfield或foreignfield中写什么都不重要,因为它从player_game_stats中获取所有数据并将其插入player集合中的每个文档中。我想检查localfield和foreignField是否相等,但lookup不检查这一点。我对mongodb使用NoSqlBooster
我有两个Avro模式V1和V2,在spark中读取如下: V1有两个字段“一”和“二” V2 与新字段:“三” 场景:编写器使用 V1 进行写入,读取器使用 V2 对 avro 记录进行解码。我的期望是看到字段3填充了默认值,即null。但是我在spark工作中遇到了以下异常。 我是不是错过了什么?我的理解是avro支持向后兼容。
我正在使用wedriveri o 4.5: 我需要等到某个元素存在,如果它不存在,处理这种情况。 例如: 但如果页面上不存在元素,webdriver会将我的测试标记为失败,并显示消息:“超时10000毫秒。”。尝试减少运行时间或增加测试规格的超时时间(http://webdriver.io/guide/testrunner/timeouts.html); 如果回复promise,确保其得到解决 >
你好,亲爱的StackOverflow社区,我最近遇到了一个问题,我不能把一个已经保存的对象的引用放进去。我不想保存或更新对象,因为这些对象是预先插入到我们的数据库中的。 所以基本上我的情况是这样的:我有一个父,在本例中它是一个摄取,对象有一个IntakeTimes列表,它们被声明为remainingdoses。有道理,嗯。 我的模型看起来如下: 我期待着任何帮助或提示,谢谢社区。