是否可以通过Spring Security为Spring应用程序的执行器端点配置安全性?
根据https://github.com/spring-projects/spring-boot/issues/8646,我需要在我的自定义Spring Security配置中执行此操作。
但是假设我在我的应用程序中有/info
的自定义请求映射(在端口8080上)以及在端口8081上启用的执行器信息端点。如何在Spring Security中区分这两者?
是的,它可能但不是特别明显。在WebSecurityConfigurerAdapter
的扩展中,您可以注入执行器端点的集合:
@Inject
private List<AbstractEndpointMvcAdapter<? extends Endpoint<?>>> actuatorEndpoints;
然后在你的configureHttpSecurity(HttpSecurity http)
覆盖中,你可以使用每个执行器端点的getPath()
成员传递给.requestMatchers(forPortAndPath(managementPort, actuatorPath))
参数上可用的http
构建器。
我刚刚发现Spring Boot 2明确解决了这个问题。见https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#production-ready-endpoints-security