我正在尝试使用oauth2Login()
配置实现资源服务器。您能帮我为两组端点分开授权逻辑吗?第一个必须初始化OAuth2授权代码授予类型流,第二个必须由Bearer令牌保护。
现在我有两种安全配置:
对于第一组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,以及作为资源服务器的基于spring的java GraphQL后端。我需要在后端提供SPA的URI,这将初始化授权代码流重定向,最终将导致将已注册的访问令牌传播到SPA。同样,在后端应用程序上还有一个GraphQL端点,必须使用访问令牌(实际上是一个身份,但没关系)来保护它。
请,您能给我一些建议吗?我不是Spring的OAuth2和OIDC的新手,但是这个非常简单的问题似乎很难实现。
预先感谢