1

스프링 부트 OAuth2의 @EnableResourceServer을 사용하는 방법을 알아 내려고하고 있지만, 기본 스프링 부트의 액추에이터 보안은 그대로 둡니다. 나는 스프링 부트 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(); 
    } 
} 

다른 보안 설정을 명시 적으로 구성하지 않았습니다. I 액추에이터 엔드 포인트는 적절하게 보안이 유지되지만 401이 표시되고 보안 디버그 로그로 확인하면 HTTP 기본과 관련하여 아무 것도 표시되지 않습니다. 내가 뭐 잘못하고 있는거야? 다른 구성이 필요합니까? 액츄에이터 엔드 포인트에 액세스 할 수 있도록이 역할을 보유해야이 management.security.roles=ROLE_SOMEROLENAME 사용자와 같은 당신은 응용 프로그램 속성에 관리 역할을 추가 할 필요가

@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

요청한 URL은 무엇입니까? – farrellmr

답변

0

ID가 같은 것을 기대합니다. 이 속성을 사용하여 액추에이터 끝점의 경로를 설정할 수도 있습니다. management.context-path=/myactuator

+0

액추에이터의 보안을 명시 적으로 설정할 필요가 없다는 것을 적어도 기대 했었습니다. (나는 그 아래에 있습니다.) 문제는 액추에이터 보안이 액추에이터 종점마다 다르게 설정된다는 것입니다. 예를 들어'/ health' 엔드 포인트는 공개적으로 사용 가능하지만'/ metrics'는 그렇지 않습니다. 가능한 경우 모든 보안 구성을 다시 수행하지 않을 것입니다. –

관련 문제