我添加了" spring-boot-starter-actuator"依赖于我的spring-boot项目。
该项目已经具有基于表单的安全性。
应用程序的根上下文是" /"。
我在上下文根" /执行器"添加了执行器。通过添加到application.yaml:
管理: context-path:/ actuator
非敏感执行器正在工作,例如" health"。
当我尝试访问敏感的执行器时,弹出窗口显示用户名/密码。验证发生了,但后来我看到" 403"访问被拒绝。
以下是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());
}
}
答案 0 :(得分:1)
在application.properties或application.yml中添加以下值,然后当popup要求输入用户名和密码时提供此凭据
security.user.name=admin
security.user.password=secret
如果您提供您的值,请检查该用户是否具有ADMIN
角色,因为执行者需要ADMIN角色用户来访问敏感端点。
<强>更新强>
如果你使用的是spring-boot 1.5。* +那么用户应该有ACTUATOR
个角色