非常に単純なセキュリティ構成のアプリケーションがあり、アクチュエータ エンドポイントを保護できないようです。私がSOの他の場所で読んだことから、これらのエンドポイントのセキュリティを無効にするのは簡単ではないように思われるので、私は困惑しています.
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class WebSecurityConfig {
@Autowired
private DataSource dataSource;
@Autowired
private WebSecurityProperties properties;
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.
jdbcAuthentication()
.dataSource(dataSource);
}
@Configuration
@Order(0)
public static class ApiWebSecurityConfigurationAdapter extends WebSecurityConfigurerAdapter {
@Autowired
private WebSecurityProperties properties;
@Override
public void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.authorizeRequests()
.antMatchers("/web/**", "/example/**").hasRole(properties.getApiUserGroup())
.and()
.httpBasic();
}
}
@Configuration
public static class FormLoginWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {
@Autowired
private WebSecurityProperties properties;
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/index.html")
.permitAll()
.and()
.authorizeRequests()
.antMatchers("/**").hasRole(properties.getAdminGroup());
}
}
}