Spring Security Facebook Oauth2 重定向太多次

2024-04-27

我正在尝试按照 Spring security 中提到的示例为 facebook 实现 Oauth2 实现https://spring.io/guides/tutorials/spring-boot-oauth2/ https://spring.io/guides/tutorials/spring-boot-oauth2/

由于 facebook 现在只允许安全应用程序作为 Oauth2 客户端,因此我通过在本地实施 SSL 证书来实现相同的目的。

我的 Spring 应用程序类:

package com.example.demo;

import java.security.Principal;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.security.oauth2.client.EnableOAuth2Sso;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@EnableOAuth2Sso
@SpringBootApplication
@RestController
public class SimpleApplication extends WebSecurityConfigurerAdapter {


    @RequestMapping("/user")
    public Principal user(Principal principal) {
        return principal;
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .csrf().disable()
            .antMatcher("/**")
            .authorizeRequests().antMatchers("/", "/login**", "/webjars/**").permitAll()  
                .anyRequest().authenticated();
    }

    public static void main(String[] args) {
        SpringApplication.run(SimpleApplication.class, args);
    }
  }

应用程序.yml:

server:
    port: 8648
    ssl:
      key-store: classpath:mycert.p12
      key-store-password: password
      key-store-type: PKCS12
      key-alias: myCertX

security:
  oauth2:
    client:
      clientId: 169343663729045
      clientSecret: ea31bd0eb13e9856097ed9d186a1276a
      accessTokenUri: https://graph.facebook.com/oauth/access_token
      userAuthorizationUri: https://www.facebook.com/dialog/oauth
      tokenName: oauth_token
      authenticationScheme: query
      clientAuthenticationScheme: form 
    resource:
      userInfoUri: https://graph.facebook.com/me

索引.html

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Demo</title>
<meta name="description" content="" />
<meta name="viewport" content="width=device-width" />
<base href="/" />
<link rel="stylesheet" type="text/css"
    href="/webjars/bootstrap/css/bootstrap.min.css" />
<script type="text/javascript" src="/webjars/jquery/jquery.min.js"></script>
<script type="text/javascript"
    src="/webjars/bootstrap/js/bootstrap.min.js"></script>
</head>
<body>
    <h1>Demo</h1>
    <div class="container"></div>
    <div class="container unauthenticated">
        With Facebook: <a href="/secure">click here</a>
    </div>
    <div class="container authenticated" style="display: none">
        Logged in as: <span id="user"></span>
    </div>

    <script type="text/javascript">
        $.get("/user", function(data) {
            $("#user").html(data.userAuthentication.details.name);
            $(".unauthenticated").hide()
            $(".authenticated").show()
        });
    </script>
</body>
</html>

当我启动应用程序时,index.html 页面打开,单击 facebook 登录链接后,facebook 页面打开,我输入凭据,然后在 facebook 重定向后,出现此错误:www.facebook.com 重定向您太​​多次。

我尝试更改 URL,但响应仍然相同。

在我的 Facebook 应用程序中有效的 OAuth 重定向 URI被设定为https://localhost:8648/login


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Security Facebook Oauth2 重定向太多次 的相关文章

随机推荐

  • WPF 进度条动画速度

    我注意到 WPF 进度栏和 WinForms 进度栏完全填满所需的时间存在差异 完全填充 就像在 Form 和 WPF 中将值设置为 100 一样 我们可以注意到 WinForms 平滑地填充栏 而 WPF 立即填充它 我想知道是否有一个属
  • 如何摆脱“Google 地图方向服务”标记?

    谷歌地图Direction ServiceApi有两个 副作用 1 它添加了Markers自动到达出发地和目的地 2 它增加了两个InfoWindow到新的Markers 包含他们的地址 知道如何摆脱这些标记及其信息气泡吗 添加suppre
  • QSpinBox 具有用于十六进制输入的 Unsigned Int

    这里写了很多关于 QSpinBox 使用 int 作为其数据类型的限制的问题 人们通常希望显示更大的数字 就我而言 我希望能够以十六进制显示无符号 32 位整数 这意味着我希望我的范围为 0x0 0xFFFFFFFF 正常的 QSpinBo
  • 如何使用 Dapper 将字符串作为 NULL 发送到 SQLServer?

    我有一个场景 C 中的字符串可以是null 我需要它是NULL在 SQL Server 上 我使用 Dapper 将其发送到 SQLServer 查询如下 connection Query
  • 面向 Clojure 用户的 Java

    我一直在断断续续地使用 Lisp 并且正在赶上 clojure clojure的好处是我可以自然地使用所有的java函数 而clojure的坏处也是我必须自然地了解java函数 例如 我不得不花一些时间 谷歌搜索 来查找 Java 中的平方
  • 如何在 AngularJS 中插入命令或阻止 $http 的 JSONP 自动解析?

    似乎我发现的关于 http 或 angularjs 的几乎每个问题或解释通常都假设您可以修改请求的响应 我不能这样做 而且我得到的响应格式错误 根据 AngularJS 解析器 它的格式错误一致 因此我可以在解析纯文本之前修改它来解决问题
  • 当我传递 NULL 值时,COALESCE 函数不起作用,但当将变量声明为 NULL 时它起作用

    当我执行以下查询时 我得到输出 但是当我通过NULL参数 它不起作用 示例1 DECLARE a int NULL b int NULL c int NULL SELECT COALESCE a b c GO 输出 空 示例2 SELECT
  • 如何使用 jasper 从 jsp 生成 pdf 格式的报告

    在我的应用程序中 我可以连接到数据库并获取数组结果集 并使用 JSP 代码迭代该数组并使用 HTML 在网页中显示报告 我希望 HTML 网页中生成的报告可以以 PDF 格式导出并保存在某个 pdf 文件中 请告诉我如何实现这样的技术来实现
  • 雪豹中的 OpenVRML(来自 macports)

    嘿 我刚刚从 macports 下载了 openvrml 端口安装openvrml 现在我有一个示例程序 来自 sourceforge 的 openvrml 的 pretty print cpp 其开头如下 ifdef HAVE CONFI
  • 如何序列化其类相互引用的类层次结构,但避免 XmlInclude?

    我有一个类的层次结构 我想使用XmlSerializer类及其相关属性 有一个基本抽象类 然后是相当多的派生类 在下面的代码中 我已将派生类的数量减少到五个 但实际代码中还有更多 这些类形成一个层次结构 并且经常包含对层次结构中类的实例的引
  • 如何从 iPhone/iPad 删除应用程序及其设置

    我正在 iPhone iPad 上测试应用程序安装 但我只能执行一次 因为 iOS 会记住设置 例如允许访问照片等 并且在我卸载应用程序时永远不会清除它们 因此 下次我安装它时 它不会要求允许访问照片等 除了重置设备之外 还有什么方法可以完
  • 给定一个范围列表,我们如何找到给定值是否存在于 Node js 的该范围列表中

    我有一组 ip 范围 我需要查找用户给出的 ip 是否存在于给定的 ip 范围列表之间 这是这个问题的延续 如何使用node js检查给定的ip是否在给定的ip范围内 https stackoverflow com questions 46
  • 在 Silverlight 中编辑并继续?

    Edit And Continue 是我最喜欢的调试工具之一 我之前曾在基于 C 的 Winforms 和 ASP NET 项目中使用过它 但是 我在 VS 2008 上运行 Silverlight 3 0 应用程序 每当我尝试进行更改 中
  • 为什么需要修改 JSP 中的 buffer 和 autoflush 属性?

    我不明白为什么需要修改JSP中的buffer和autoflush属性 它们是做什么的 如果我不修改它们会发生什么 JSP 页面生成的任何内容都存储在缓冲区中 当缓冲区已满时 它会被发送回客户端 浏览器 当缓冲区刷新一次时 重定向或转发将不起
  • 具有自定义格式的 ASP.NET MVC ViewModel 映射

    我正在从事的项目在域模型中有大量货币属性 我需要将它们格式化为 用于向视图传输和从视图传输 我对可以使用的不同方法有一个想法 一种方法可能是在视图内显式设置值的格式 如下所示Steve Michelotti 的 模式 1 https web
  • 在具有重载构造函数的类中传递 null 时,首先调用哪个构造函数?

    下面是具有 3 个重载构造函数的 java 类 public class Test public Test Object i System out println Object invoked public Test String i Sy
  • 如何在 C# winforms 中翻译文本

    我需要翻译一些文本 我正在尝试使用谷歌翻译器来翻译它 我检查了这个article http martinnormark com translate text in c using google translate 但我在以下代码中遇到异常
  • 插入到 wordpress 数据库 - 调用成员函数 insert()

    我在通过我的插件将数据插入 WordPress 数据库时遇到问题 我的插件使用短代码来显示一个表单 从中进行一些计算 然后该信息应该被插入到数据库中 但我最终收到了此消息 我似乎无法让它工作 任何帮助将不胜感激 用于插入的插件代码 incl
  • Java 泛型和数字

    为了看看我是否可以清理一些数学代码 主要是矩阵代码 我尝试使用一些 Java 泛型 我有以下方法 private
  • Spring Security Facebook Oauth2 重定向太多次

    我正在尝试按照 Spring security 中提到的示例为 facebook 实现 Oauth2 实现https spring io guides tutorials spring boot oauth2 https spring io