Я пытаюсь реализовать Resource Server с конфигурацией oauth2Login()
.Не могли бы вы помочь мне разделить логику авторизации для двух групп конечных точек?Первый должен инициализировать поток типа предоставления кода авторизации OAuth2, а второй должен быть защищен токеном носителя.
Теперь у меня есть две конфигурации безопасности:
Для первой группы URI, которые у меня естьэта конфигурация:
@Configuration
@EnableWebSecurity
public class WebSecurityConf extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/authorize")
.authenticated()
.and()
.oauth2Login();
}
}
А для второй группы есть код:
@Configuration
@EnableResourceServer
public class ResourceServerConf extends ResourceServerConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/graphql")
.authenticated();
}
}
Вся картина такова: на JS есть внешний интерфейс SPA и пружинныйJava GraphQL бэкэнд в качестве сервера ресурсов.Мне нужно предоставить URI для SPA на внутренней стороне, который инициализирует перенаправления потока кода авторизации, что в конечном итоге приведет к распространению зарегистрированного маркера доступа в SPA.Кроме того, в том же бэкэнд-приложении есть конечная точка GraphQL, которая должна быть защищена токеном доступа (фактически, Identity один, но не имеет значения).
Пожалуйста, не могли бы вы мне что-нибудь посоветовать?Я не новичок в OAuth2 и OIDC весной, но эта довольно простая проблема кажется немного сложной для реализации.
Заранее спасибо