spring-boot プロジェクトに「spring-boot-starter-actuator」依存関係を追加しました。
プロジェクトにはすでにフォーム ベースのセキュリティがあります。
アプリケーションのルート コンテキストは「/」です。
application.yaml に次のように追加して、コンテキスト ルート "/actuators" にアクチュエータを追加しました。
管理: コンテキストパス: /actuators
「健康」などの非敏感なアクチュエーターが機能しています。
機密アクチュエータにアクセスしようとすると、ユーザー名/パスワードのポップアップが表示されます。認証は行われますが、"403" Access is Denied と表示されます。
Web セキュリティの設定は次のとおりです。
@Configuration
@EnableWebSecurity
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
private AuthenticationLookupService authenticationLookupService;
private AuthenticationManagerBuilder authenticationManagerBuilder;
private UrlSuccessAuthenticationHandler successHandler;
@Autowired
public void setAuthenticationLookupService(AuthenticationLookupService authenticationLookupService) {
this.authenticationLookupService = authenticationLookupService;
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) {
this.authenticationManagerBuilder = auth;
}
@Autowired
public void setSuccessHandler(UrlSuccessAuthenticationHandler successHandler) {
this.successHandler = successHandler;
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/", "/index.html", "/auth/**").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/index.html").successHandler(successHandler)
.permitAll()
.and()
.logout()
.permitAll();
http.csrf().disable(); // todo: fix later
}
@PostConstruct
public void process() throws Exception {
this.authenticationManagerBuilder.userDetailsService(this.authenticationLookupService).passwordEncoder(new ShaPasswordEncoder());
}
}