Разница между AuthorizationServerConfigurerAdapter и WebSecurityConfigurerAdapter

В чем разница между этими классами? Я знаю, что WebSecurityConfigurerAdapter используется для настройки «безопасности» наших приложений.

Что я сделал:

public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Autowired
CustomUserDetailsService customUserDetailsService;

@Autowired
private JwtAuthenticationEntryPoint unauthorizedHandler;

Но я не понимаю значения AuthorizationServerConfigurerAdapter.

Я прочитал пару статей, но не понимаю.

Вы используете OAuth2? Что ты не понимаешь? Что ты уже понимаешь? Какие статьи вы читали?

dur 19.06.2018 07:54

да, я использую oauth. я не понимаю цель авторизации serverconfigureradapter

Teuddy R 19.06.2018 15:22
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
13
2
6 845
2

Ответы 2

Сначала об одном. OAuth 2 - это среда авторизации. Он позволяет приложению (клиенту) получить ограниченный доступ к HTTP-сервису от имени владельца ресурса (пользователя). OAuth 2 не является протоколом аутентификации.

AuthorizationServerConfigurerAdapter используется для настройки как работает сервер авторизации OAuth.

Вот некоторые аспекты, которые можно настроить:

  • поддерживаемые типы предоставления (например, предоставление кода авторизации)
  • сервис кодов авторизации, для хранения кодов авторизации
  • хранилище токенов, для хранения токенов доступа и обновления (например, JwtTokenStore)
  • служба сведений о клиенте, в которой хранятся конфигурации клиента
  • ...

WebSecurityConfigurerAdapter используется для настройки как защищен сервер авторизации OAuth.

Или, другими словами, как пользователь должен пройти аутентификацию, чтобы предоставить клиенту доступ к своим ресурсам.

Это может быть:

  • форма аутентификации
  • аутентификация через поставщика удостоверений (вход в Facebook)
  • ...

(Я намеренно опустил некоторые детали, чтобы ответить как можно проще.)


Пример конфигурации сервера авторизации с хранилищем токенов в памяти:

@Configuration
@EnableAuthorizationServer
public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {

    @Override
    public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
        endpoints.tokenStore(tokenStore());
    }

    @Bean
    public TokenStore tokenStore() {
        return new InMemoryTokenStore();
    }

    ...

}

Пример конфигурации безопасности с входом в форму:

@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers("/login").permitAll()
                .antMatchers("/oauth/authorize").authenticated()
                .and()
            .formLogin();
    }

    ...

}

Очень простое объяснение. Хороший.

arjuncc 19.08.2019 08:25

если вы хотите использовать сторонний аутентификатор, это означает, что одновременно OAuth, тогда вы должны использовать AuthorizationServerConfigurerAdapter с WebSecurityConfigurerAdapter на стороне сервера OAuth. Если это не так, то для обычной аутентификации достаточно WebSecurityConfigurerAdapter.

Другие вопросы по теме