1

我想弄清楚如何使用彈簧安全OAuth2的@EnableResourceServer,同時保持默認的春季啓動的執行器安全未觸及。我正在使用Spring Boot 1.5.1和依賴項的默認版本。我有以下配置彈簧啓動與春季安全OAuth2和執行器

@Configuration 
@EnableResourceServer 
@EnableWebSecurity(debug=true) 
@EnableGlobalMethodSecurity 
public class OAuthConfig extends ResourceServerConfigurerAdapter { 

    @Override 
    public void configure(final HttpSecurity http) throws Exception { 
     http 
     .authorizeRequests() 
     .antMatchers(HttpMethod.OPTIONS, "/**").permitAll() 
     .mvcMatchers("/resource/{type}").permitAll() 
     .antMatchers("/resource/data/**").authenticated(); 
    } 
} 

我沒有明確配置任何其他安全設置。我想想到執行器端點將繼續得到適當的保護,但我得到401,並且在檢查安全調試日誌時,它沒有顯示任何關於HTTP Basic的信息。任何我做錯了什麼?我需要一些其他配置?

+0

您請求什麼網址?我期望.antMatchers(「/ /**」)。permitAll() – farrellmr

回答

0

標識想到這樣的事情 -

@Override 
public void configure(final HttpSecurity http) throws Exception { 
    http 
    .authorizeRequests() 
    .antMatchers(HttpMethod.OPTIONS, "/**").permitAll() 
    .antMatchers("/health/**").permitAll() 
    .mvcMatchers("/resource/{type}").permitAll() 
    .antMatchers("/resource/data/**") 
    .anyRequest().authenticated(); 
} 
+0

我至少希望我不需要明確地設置執行器的安全性(我有這一切/大約)。問題是執行器安全設置每個執行器端點設置不同。例如,'/ health'端點是公開可用的,但'/ metrics'不是,我寧願不(如果可能的話)重新執行所有安全配置。 –

0

您必須添加到應用程序性能管理的角色,像這樣management.security.roles=ROLE_SOMEROLENAME用戶應該持有這個角色才能夠進入執行器的端點。您也可以使用此屬性設置執行器端點的路徑management.context-path=/myactuator