>

spring-security 를 사용하고 있습니다  그리고 spring-security-oauth2  인증 및 권한 부여를위한 (JWT 액세스 토큰). 아이디어는 모든 요청을 통과하지만 인증 된 사용자와 인증되지 않은 사용자를 구별 할 수 있도록하는 것입니다. @EnableResourceServer 를 활성화하자마자  구성된 HttpSecurity  무시되는 것 같습니다. 요청은 401을 반환합니다.

{
    "error": "unauthorized",
    "error_description": "Full authentication is required to access this resource"
}

설정은 다음과 같습니다 :

@SpringBootApplication
@EnableJpaRepositories
@ComponentScan
@EntityScan
@EnableWebSecurity
public class Application {
    public static void main(final String[] args) {
        new SpringApplicationBuilder(Application.class).bannerMode(Banner.Mode.OFF).run(args);
    }
    @EnableResourceServer
    public static class SecurityConfig extends WebSecurityConfigurerAdapter implements JwtAccessTokenConverterConfigurer {
        @Override
        protected void configure(final HttpSecurity http) throws Exception {
            http.csrf().disable();
            http.authorizeRequests().anyRequest().permitAll();
        }
        @Override
        public void configure(final JwtAccessTokenConverter converter) {
            final DefaultAccessTokenConverter conv = new DefaultAccessTokenConverter();
            conv.setUserTokenConverter(userAuthenticationConverter());
            converter.setAccessTokenConverter(conv);
        }
        @Bean
        public UserAuthenticationConverter userAuthenticationConverter() {
            return new ResourceAuthenticationConverter();
        }
    }


  • 답변 # 1

    거의 있습니다. @EnableResourceServer의 javadoc은 쉬운 해결책입니다.

    와이즈 비즈

    Users should add this annotation and provide a @Bean of type ResourceServerConfigurer (e.g. via ResourceServerConfigurerAdapter) that specifies the details of the resource (URL paths and resource id).

    를 사용하고 있습니다  하나. 그냥 WebSecurityConfigurerAdapter 로 변경   ResourceServerConfigurerAdapter 의 가시성을 향상 :

    configure
    
    
    @EnableResourceServer public static class SecurityConfig extends ResourceServerConfigurerAdapter implements JwtAccessTokenConverterConfigurer { // snip @Override public void configure(final HttpSecurity http) throws Exception { http.csrf().disable(); http.authorizeRequests().anyRequest().permitAll(); } // snip

  • 이전 java - sonarqube - 등록 범위 : 동일한 범위에서 'a'두 번
  • 다음 internet explorer - Powershell IE 로그인 자동화가 ID로 요소를 찾을 수 없음