在 Spring Boot OAuth2 中跳过 OAuth 用户批准

Skip OAuth user approval in Spring Boot OAuth2

我只想知道是否有任何方法可以跳过 Spring Boot - Spring Security OAuth2 中的用户批准屏幕。我听说过自定义用户批准处理程序,但我不太确定如何覆盖它以禁用用户批准流程并进行直接重定向。

谢谢

您不需要自定义处理程序来跳过批准(无论如何从 2.0 开始)。您只需将客户端详细信息中的 autoApprove 标志设置为 "true"(或要自动批准的范围模式列表)。

这是我在 JHipster 应用程序中更改它的方式:

        @Override
        public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
            clients
                .inMemory()
                .withClient(jhipsterProperties.getSecurity().getAuthentication().getOauth().getClientid())
                .autoApprove(true)
                .scopes("read", "write")
                .authorities(AuthoritiesConstants.ADMIN, AuthoritiesConstants.USER)
                .authorizedGrantTypes("password", "refresh_token")
                .secret(jhipsterProperties.getSecurity().getAuthentication().getOauth().getSecret())
                .accessTokenValiditySeconds(jhipsterProperties.getSecurity().getAuthentication().getOauth().getTokenValidityInSeconds());
        }

设置属性 自动批准范围:'.*' in application.yml

security:
  oauth2:
    client:
      client-id: acme
      client-secret: acmesecret
      scope: read,write
      auto-approve-scopes: '.*'

另见 https://spring.io/guides/tutorials/spring-boot-oauth2/#_social_login_authserver