问题描述
抱歉,这是一个非常愚蠢的问题...
我是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()