Я работаю над spring-security-oauth2-1.0.3.RELEASE, пытаясь настроить клиент oauth для аутентификации пользователя в Google.
Я потратил на это некоторое время и до сих пор не нашел много хорошей статьи, объясняющей очень четко.
Что я делаю, так это помещаю OAuth2ClientAuthenticationProcessingFilter в цепочку фильтров следующим образом:
<http xmlns="http://www.springframework.org/schema/security"
use-expressions="true" pattern="/oauth.html" auto-config="true">
<sec:intercept-url pattern="/**" access="isFullyAuthenticated()" />
<custom-filter ref="oauth2ClientFilter" position="CAS_FILTER" />
<sec:custom-filter ref="googleAuthFilter" after="CAS_FILTER" />
</http>
Пользовательский фильтр: googleAuthFilter предназначен для защиты моего URL.
При чтении исходного кода OAuth2ClientAuthenticationProcessingFilter требуется ссылка на
- OAuth2RestOperations (остальный шаблон), который ссылается на ресурс сервера Oauth (информация о Google)
- ResourceServerTokenServices (из пакетов поставщиков библиотек Spring-security-oauth).
Теперь я в замешательстве. Spring-security-oauth разделен на 2 части: клиентскую и провайдерскую.
Поскольку я только настраиваю клиент Oauth, зачем мне нужна ссылка на класс из пакетов поставщиков Oauth?
Кроме того, как мне настроить ResourceServerTokenServices? Теперь я пытаюсь использовать реализацию по умолчанию. Поскольку DefaultTokenServices снова требует ссылки на
- TokenStore
- ClientDetailsService
- TokenEnhancer
До сих пор я пробовал все реализации по умолчанию:
- Токенсторе: Инмеморитокенсторе
- Клиентдетаилссервице: InMemoryClientDetailsService
- Токенэнхансер: Токенэнхансерчейн
а вроде не работает...
Спасибо!