Мне было интересно, есть ли способ поэтапной авторизации с помощью Spring Security (как уже упоминалось здесь )
По умолчанию Spring Security обеспечивает базовый доступ к профилю при использовании проверки Google OAuth. Этот поток правильный. Однако я хотел бы запросить дополнительные области (чтение Gmail, чтение календаря и т. Д.) На определенных конечных точках URL.
Я уже пытался использовать свойство @PreAuthorize на конечной точке вместе с включением @EnableGlobalMethodSecurity(prePostEnabled = true)
, как в коде.
@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class MethodSecurityConfiguration extends GlobalMethodSecurityConfiguration {
@Override
protected MethodSecurityExpressionHandler createExpressionHandler() {
return new OAuth2MethodSecurityExpressionHandler();
}
}
Класс конфигурации безопасности:
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/", "/error", "/privacy", "/css/**", "/images/**", "/js/**", "/fonts/**")
.permitAll().anyRequest().authenticated().and().oauth2Login().and().logout().logoutSuccessUrl("/");
http.csrf().disable();
http.headers().frameOptions().disable();
}
}