当前位置: 首页 > 知识库问答 >
问题:

带有Google provider的Spring Oauth2客户端不断要求认证

蔚俊人
2023-03-14

我已经创建了一个Spring Oidc客户端应用程序。我配置了一个oauth2客户端,如下所示:

spring:
  security:
    oauth2:
      client:
        registration:
          google:
            client-id: my_client_id
            client-secret: my_secret
            clientName: myapp
            redirectUri: 'http://localhost:8081/wellcome'

Web安全配置r适配器

.... 
   @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .anyRequest().authenticated()
                .and()
                .oauth2Login();
    }

重定向url配置在http://localhost:8081/wellcome

在我初始化身份验证之后,客户端被重定向到google身份验证页面,它会不断地请求身份验证。如果我保留默认的重定向url(即../oauth2/code/google),应用程序可以正常工作。

如果我使用不同的重定向url,为什么重定向不能正常工作?

共有1个答案

傅高逸
2023-03-14

默认重定向URI为/login/oauth2/callback/{registrationId}

当重定向到/login/oauth2/callback/{registrationId}时,OAuth2LoginAuthenticationFilter将处理该请求,尝试对用户进行身份验证,并创建OAuth2AuthenticationToken

通过更改重定向 URI,不会调用 OAuth2LoginAuthenticationFilter,并且应用程序不知道用户是否已通过身份验证,这就是它提示他们再次进行身份验证的原因。

您可能正在尝试更改默认的 SuccessUrl

这指定在成功进行身份验证后将用户重定向到的位置。

http
    .oauth2Login(oauth2Login -> oauth2Login
        .defaultSuccessUrl("/welcome")
    )

 类似资料:
  • SOFARPC 已集成 Hystrix 提供熔断能力,当前提供第一个预览版。关于 Hystrix 的更多介绍可以参考 Hystrix 官方文档,Hystrix 集成能力主要由 ScienJus 提供,感谢贡献。 接下来介绍一下如何体验 Hystrix 带来的熔断能力,以下示例使用 SOFARPC 5.5.0 版本,更多 Hystrix 的配置及 SOFABoot 集成使用方式将在后续版本提供,敬请

  • 问题内容: 使用Websphere MQ 8.x,我们是较大环境中的一个应用程序,并且是某些数据接口的客户端。我们的应用程序是在WildFly 9上运行的Java EE应用程序,该应用程序使用资源适配器()与EAR文件一起部署在同一AS中。我们在两个方向上与MQ服务器进行交互。因此,一方面,我们有一些MDB(由于历史渊源仍是EJB 2.x格式而没有注释)列出了一些队列,并由包含激活配置属性的部署描

  • 当我尝试access/oauth/token时,我得到了错误: O.S.S.O.Provider.Endpoint.TokenEndpoint:处理错误:NoSuchClientException,没有请求ID:username的客户端 null

  • 客户端的HTTP/HTTPS请求。 进程:主进程​ ClientRequest是由EventEmitter来实现Writable Stream​ new ClientRequest(options) 作用:发起新的HTTP/HTTPS请求 options(Object | String) - options是String时即请求URL。 options 是Object时则按以下属性请求: meth

  • 我从这里下载了Google API库https://github.com/googleapis/google-api-php-client。我解压缩了它,并将它上传到了我的服务器'/etc/'。然后,我将路径放在脚本中,如下所示: 这都是根据该页面上的文档: 您可以下载整个包。发布页面列出了所有稳定的版本。下载任何名为google-api-php-client-[RELEASE_NAME].zip

  • 问题内容: 我想要求基于Java 1.7内置HttpsServer的服务器进行客户端证书认证。 我似乎找不到任何使服务器无法通过身份验证的方法。无论客户端证书是受信任的,未知的还是完全不存在的,它都会愉快地为所有旧客户端提供数据。 我对文档的阅读建议,如果不信任客户端,则设置HttpsParameters.setNeedClientAuth(true)应该会导致身份验证失败。我发现有类似问题的人的