Понимание потока учетных данных клиента OAuth2

Я пытаюсь понять и реализовать поток учетных данных клиента между нашим новым сервером REST и нашим существующим клиентским приложением. Я'Мы настроили Spring-Security OAuth2, какэтот, Насколько я понимаю, мой сервер теперь должен поддерживать следующий запрос:

$ curl -X -v -d 'client_id=the_client&client_secret=secret&grant_type=client_credentials' -X POST "http://localhost:9090/oauth/token"

но я получаю

InsufficientAuthenticationException: There is no client authentication

вызваноPrincipal являющийсяnull здесь (код безопасности):

@FrameworkEndpoint
@RequestMapping(value = "/oauth/token")
public class TokenEndpoint extends AbstractEndpoint {

    @RequestMapping
    public ResponseEntity getAccessToken(Principal principal,
            @RequestParam("grant_type") String grantType, @RequestParam Map parameters) {

        if (!(principal instanceof Authentication)) {
            throw new InsufficientAuthenticationException(

Так что, похоже, мне нужноаутентифицироваться на сервере первый. Но этоне то, что я хочу сделать, Я хочу, чтобы два моих сервера общались друг с другом, используя общий секрет. Сервер поставщика OAuth должен предоставлять токен доступа (доверенному) клиентскому серверу по запросу, чтобы клиентский сервер мог затем использовать этот токен для доступа ко всем ресурсам REST на сервере. Это должно защитить ресурсы REST от внешнего доступа.

Позже я хочу предоставить выбранные ресурсы третьей стороне и, в конечном итоге, внедрить некоторую более тонкую защиту для связи между серверами. Но сейчас мне нужно защитить REST-сервер от внешнего доступа.

Похоже, у меня могут быть некоторые недоразумения относительно всего потока учетных данных клиента или применения Spring-Security прямо здесь, поэтому любые разъяснения будут с благодарностью.

Ответы на вопрос(1)

Ваш ответ на вопрос