如果这是一个非常愚蠢的问题,很抱歉。。。
我是Spring Security的新手,我有一个基本的SpringBoot Rest API,现在我想学习如何保护它。
现在我真正想做的是有一个单独的网页;使用Facebook登录";看法但是,我如何使用来自facebook的令牌来保护我的rest api中的一些端点呢?
想象一下:
端点/配置文件--只有已登录的用户才能查看其配置文件。Endpoint/welcome--每个人都可以访问Endpoint/messages--只有登录的用户才能看到他们的消息。
我应该在这里使用什么框架,或者我该如何进行
谢谢!
欢迎使用OAuth(开放授权(。有一个问题叫做">访问委派问题";在过去,OAuth是为了修复它而创建的;微服务安全在行动";书,它告诉你确切地想在Facebook上的例子。(见附录D(
在您的场景中,这里是OAuth组件。
- 资源服务器:您的Spring Boot项目
- 授权服务器:Facebook
- 资源所有者:最终用户
首先,将spring-security-oauth2模块导入到您的项目中。然后配置弹簧安全性。
通过OpenIDConnect/OIDC将您的身份验证委托给Facebook(基本上是通过OAuth 2.0进行身份验证(
http.oaut2Login()
提供授权码流授权类型详细信息,如client_id、redirect_uri、token_uri、authorize_uri。
spring:
security:
oauth2:
...
允许一些url公开。
http.authorizeRequests().antMatchers(preparePermittedUrls()).permitAll()