Spring Security OAuth2 достаточное исключение проверки подлинности - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь реализовать сервер OAuth2 с помощью Spring Security, но получаю исключение «InsufficientAuthenticationException»

enter image description here

Это моя текущая конфигурация:

Файл WebSecurityConfigurer

@Configuration
@Order(1)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
    http.requestMatchers()
            .antMatchers("/login", "/oauth/authorize","/oauth/token")
            .and()
            .authorizeRequests()
            .anyRequest()
            .authenticated()
            .and()
            .formLogin()
            .permitAll();
}

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth.inMemoryAuthentication()
            .withUser("john")
            .password(passwordEncoder().encode("123"))
            .roles("USER");
}

@Bean
public BCryptPasswordEncoder passwordEncoder() {
    return new BCryptPasswordEncoder();
}
}

Файл AuthorizationServerConfigurer

@Configuration
@EnableAuthorizationServer
public class AuthServerConfig extends AuthorizationServerConfigurerAdapter {

@Autowired
private BCryptPasswordEncoder passwordEncoder;

@Override
public void configure(
        AuthorizationServerSecurityConfigurer oauthServer) throws Exception {
    oauthServer.tokenKeyAccess("permitAll()")
            .checkTokenAccess("isAuthenticated()");
}

@Override
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
    clients.inMemory()
            .withClient("SampleClientId")
            .secret(passwordEncoder.encode("secret"))
            .authorizedGrantTypes("authorization_code")
            .scopes("user_info")
            .autoApprove(false)
            .redirectUris("http://localhost:3000/callback");
}
}

Я пытаюсь сделать следующее:

1) Hit / auth/ login, чтобы войти в систему, и я могу ввести учетные данные.
2) Собрать код, отправленный на обратный вызов redirect_uri

3) Hit / auth / oauth / token следующим образом

enter image description here

enter image description here

Это вызывает эту ошибку:

enter image description here

2018-12-17 13:59:08.384 DEBUG 91394 --- [nio-8081-exec-3] o.s.security.web.FilterChainProxy        : /oauth/token/ has no matching filters
2018-12-17 13:59:08.385 DEBUG 91394 --- [nio-8081-exec-3] .s.o.p.e.FrameworkEndpointHandlerMapping : Mapped to public org.springframework.http.ResponseEntity<org.springframework.security.oauth2.common.OAuth2AccessToken> org.springframework.security.oauth2.provider.endpoint.TokenEndpoint.postAccessToken(java.security.Principal,java.util.Map<java.lang.String, java.lang.String>) throws org.springframework.web.HttpRequestMethodNotSupportedException
2018-12-17 13:59:08.386  WARN 91394 --- [nio-8081-exec-3] o.s.s.o.provider.endpoint.TokenEndpoint  : Handling error: InsufficientAuthenticationException, There is no client authentication. Try adding an appropriate authentication filter.

Я перепробовал все, что предлагают другие посты, но безуспешно.

РЕДАКТИРОВАТЬ: Это мой файл application.properties

enter image description here

Пожалуйста, игнорируйте URL, указанный на изображениях POSTMAN, правильный URIS должен быть / auth / oauth / *

Есть идеи, что я делаю неправильно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...