2016-03-11 3 views
1

Итак, я думаю, что теряюсь в массе подходов, учитывая, что я новичок во всем этом, но у меня есть автономный Auth Server, используя базовый auth для ввода учетных данных пользователя.OAuth2 client UI confusion

Я тогда очень простое приложение клиента, которое успешно перенаправлять /oauth/authorize, а затем проделывают последующие вызовы /oauth/token и /oauth/check_token как часть потока. Поэтому я возвращаю токен доступа, и он выглядит хорошо.

Проблема в том, что я не могу получить доступ к каким-либо ресурсам в приложении пользовательского интерфейса, так как он говорит, что я не аутентифицирован. Я добавил это, чтобы проверить состояние вещей в контроллере:

SecurityContext ctx = SecurityContextHolder.getContext(); 

Контекст говорит, что я не прошел проверку подлинности (но он содержит OAuth2Authentication объект детали, крепящие маркер доступа и т.д.).

если я отлаживать несколько больше, я могу видеть в OAuth2AuthenticationProcessingFilter, который пытается получить маркер носителя из запроса (BearerTokenExtractor) через авторизации заголовков, но не могу найти его; Должен ли я явным образом устанавливать это после авторизации сервером auth?

Что мне не хватает?

Большое спасибо

ответ

0

Это означает, что вы не передавая маркер, полученный от сервера oauth2 в заголовках запросов к серверу ресурсов; это механизм, с помощью которого сервер ресурсов может проверить, разрешено ли вам, и затем установить соответствующий контекст безопасности.

Вы должны установить следующий заголовок для любого запроса к серверу ресурсов:

Authorization: Bearer {your token} 
0

Даниил, большое спасибо за это.

У меня есть 2 вопроса/вопрос после этого.

Во-первых, для доступа к ресурсам в одном и том же (клиентском) приложении, которое я отметил как нуждающийся в аутентификации, я получаю «Доступ запрещен». я вижу JSESSIONID и токен XSRF в инструментах разработчика в Chrome.

Во-вторых, чтобы получить доступ к удаленным ресурсам, нужно ли использовать OAuth2RestTemplate, получая канал от сеанса?

Большое спасибо

Martin

0

Чтобы закруглить все это прочь, я установил оба вопроса.

  1. удаленные ресурсы; Я использовал Zuul для проксирования моих запросов, которые прикрепляют токен OAuth для меня.
  2. местные охраняемые ресурсы; переписать ограничения на http
Смежные вопросы