如何启用 /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 保护
在我们的项目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/
.