Springboot Social使用Facebook进行授权

问题描述

抱歉,这是一个非常愚蠢的问题...

我是Spring Security的新手,我有一个基本的SpringBoot Rest API,现在我想学习如何保护它。

现在,我真正想做的是拥有一个单独的网页,该网页具有“使用Facebook登录”视图。但是,如何使用来自Facebook的令牌来保护我的rest api中的某些端点?

想象:

端点/配置文件-只有已登录的用户才能看到其配置文件。端点/欢迎-每个人都可以访问端点/消息-只有登录的用户才可以查看其消息。

我应该在这里使用什么框架,或者我该怎么做

谢谢!

解决方法

欢迎使用OAuth(开放授权)。存在一个名为“ 访问委派问题”的问题。 过去,并创建了OAuth对其进行修复。如果您能够访问“ Microservice Security In Action”一书,则可以在Facebook示例中准确地告诉您您想要的内容。 (位于附录D

在您的情况下,这是OAuth组件。

  • 资源服务器:您的Spring Boot项目
  • 授权服务器:Facebook
  • 资源所有者:最终用户

首先,将spring-security-oauth2模块导入您的项目。然后配置spring安全性。

通过 OpenID Connect / OIDC 将您的身份验证授权到 Facebook (基本上是通过OAuth 2.0进行身份验证)

http.oaut2Login()

提供授权代码流授权类型详细信息,例如client_id,redirect_uri,token_uri,authorize_uri。

spring:
  security:
    oauth2:
       ...

允许某些网址公开。

http.authorizeRequests().antMatchers(preparePermittedUrls()).permitAll()

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...