如何使WebSecurityConfigurerAdapter和ResourceServerConfigurerAdapter交错

时间:2019-06-19 18:55:30

标签: spring-security oauth-2.0 spring-security-oauth2

我正在尝试使用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的新手,但是这个非常简单的问题似乎很难实现。

预先感谢

0 个答案:

没有答案