如何启用 /refresh Actuator 端点并绕过 CSRF 限制?

how do I enable the /refresh Actuator endpoint and get around CSRF restrictions?

在我们的项目WebSecurityConfig.java中

public class WebSecurityConfig extends WebSecurityConfigurererAdapter {
   @Override
   p void configure(HttpSecurity http) throws Exception {
       http.authorizeRequests().antMatchers("/**").hasAnyAuthority("USER", "ADMIN")
       .and.csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse());
   }
}

我已经在我的 pojo 上安装了@RefreshScope:

@Configuration
@Data
@RefreshScope
public class MyProperties {
   private String myName;
   private String myAddress;
   private String myCity;
   .....
}

Spring Boot Actuator 已安装。 Spring 安全性正在提供 https 和 SSL。我可以访问所有 GET 执行器端点,但是当我尝试调用 http://localhost:8080/actuator/refresh(POST)时,我收到 403 Refused.

环顾四周,我看到默认的东西不允许 POSTs。这在我禁用 csrf() 时有效,但在启用时无效(这是产品的要求)。

有人可以帮助我了解发生了什么吗?还有其他人这样做吗?这可以在不完全禁用 CSRF 的情况下完成吗?

谢谢, 薇诺娜

只需指定要在哪些端点上禁用 CSRF。例如:csrf().ignoringAntMatchers("/actuator/**")。这样做会禁用以 /actuator/.

开头的任何请求的 CSRF 保护