2016-02-27 10 views
14

Я пытаюсь интегрировать Spring OAuth2 в Spring MVC REST. Большинство примеров Spring OAuth2, есть только ResourceServerConfigurerAdapter, а некоторые из них также имеют WebSecurityConfigurerAdapter. Я не собираюсь интегрировать OAuth с Google, Facebook и т. Д. Я пытаюсь предоставить аутентификацию на токенах для Spring MVC REST, которая в настоящее время основана на Basic Аутентификация. Может ли кто-нибудь exaplin мне, что требуется, а не или хороший ресурс, чтобы понять интеграцию Spring MVC REST + OAuth на одном сервере?Связь между WebSecurityConfigurerAdapter и ResourceServerConfigurerAdapter

В настоящее время МОК работает без WebSecurityConfigurerAdapter, но с ResourceServerConfigurerAdapter вместе с AuthorizationServerConfigurerAdapter. Похоже, ResourceServerConfigurerAdapter достаточно. Теперь я не уверен, что мне делать с моим существующим WebSecurityConfigurerAdapter, который отлично работает в моем приложении Spring MVC REST.

ответ

10

Вот хороший ответ https://stackoverflow.com/a/28604260, похоже, что WebSecurityConfigurerAdapter является порядком, уступающим ResourceServerConfigurerAdapter.

У меня есть WebSecurityConfigurerAdapter и ResourceServerConfigurerAdapter, но конфигурация конечных точек безопасности в ResourceServerConfigurerAdapter под:

public void configure(HttpSecurity http) throws Exception { 

Я также следующую конфигурацию:

security: 
    oauth2: 
     resource: 
      filter-order: 3 

Else конфигурация конечных точек безопасности является игнорируется (я не знаю почему).

+0

Это сработало для меня тоже. с этим мне вообще не нужен «WebSecurityConfigurerAdapter» - «ResourceServerConfigurerAdapter» делает все. Я наблюдал цепочку фильтров с помощью 'logging.level.org.springframework.security: DEBUG', через 3 теста. 1. «Только ресурс» 2. «Ресурс * и Интернет *» 3. «Ресурс» и «Веб» и «Фильтр-заказ». В случаях 1 и 3: цепочка фильтров была 12-длинной и включала в себя «OAuth2AuthenticationProcessingFilter», который предоставил сертификат на предъявителя (по желанию). но в случае 2: ​​цепь фильтра была 14-длинной, исключена «OAuth * Filter» и вместо этого фильтрует, например, «User * Password * Filter». – Birchlabs

+0

Если вы нашли какое-либо решение для этого, сообщите мне, у меня такая же проблема. вот мой вопрос https://stackoverflow.com/questions/47627226/basic-auth-oauth-implementation-in-spring-boot –

+0

Я думаю, что это хороший ответ, однако, будучи новичком в oauth, я пришел к этому ответу и я взял _'... похоже, что WebSecurityConfigurerAdapter является порядком, уступающим ресурсу ResourceServerConfigurerAdapte'_, как если бы ResourceServerConfigurerAdapter можно было обработать до WebSecurityConfigurerAdapter. Просто для уточнения, у WebSecurityConfigurerAdapter, по-видимому, есть ** более высокий приоритет ** над ResourceServerConfigurerAdapter – kavrosis