【问题标题】:Spring: Configure security for actuator endpoints with Spring SecuritySpring:使用 Spring Security 为执行器端点配置安全性
【发布时间】:2018-08-05 05:57:08
【问题描述】:

是否可以使用 Spring Security 以通用方式为 Spring 应用程序的执行器端点配置安全性?

根据https://github.com/spring-projects/spring-boot/issues/8646,我需要在我的自定义 Spring Security 配置中执行此操作。

但是假设我在我的应用程序中(在端口 8080 上)有一个针对 /info 的自定义请求映射,并且在端口 8081 上启用了执行器信息端点。我如何在 Spring Security 中区分这两者?

【问题讨论】:

    标签: java spring spring-security spring-boot-actuator


    【解决方案1】:

    【讨论】:

    【解决方案2】:

    是的,这是可能的,但不是特别明显。在WebSecurityConfigurerAdapter 的扩展中,您可以注入执行器端点的集合:

    @Inject
    private List<AbstractEndpointMvcAdapter<? extends Endpoint<?>>> actuatorEndpoints;
    

    然后在覆盖configureHttpSecurity(HttpSecurity http) 时,您可以使用每个执行器端点的getPath() 成员传递给http 参数上可用的.requestMatchers(forPortAndPath(managementPort, actuatorPath)) 构建器。

    【讨论】:

    • 谢谢!实际上,就我而言,我只是想忽略 Spring Security 中的管理端点,因此拥有 @Value("${management.port:8081}").requestMatchers(request -&gt; request.getServerPort() == managementPort) 就可以了
    猜你喜欢
    • 1970-01-01
    • 2016-08-26
    • 1970-01-01
    • 2020-01-03
    • 1970-01-01
    • 2018-09-11
    • 1970-01-01
    • 2017-06-27
    • 2015-12-04
    相关资源
    最近更新 更多