我花了2天的时间阅读了SpringBoot OAuth2客户端的各种教程。每个人看起来都略有不同。此外,由于在给定的包中找不到几个类,因此它们都不起作用。
https://www.baeldung.com/spring-webclient-oauth2
https://www.baeldung.com/spring-security-5-oauth2-login#setup
https://spring.io/blog/2018/03/06/using-spring-security-5-to-integrate-with-oauth-2-secured-services-such-as-facebook-and-github
https://github.com/spring-projects/spring-security/wiki/OAuth-2.0-Migration-Guide ...
也许我同时也弄糊涂了。但我可以在本月的SpringBoot中使用一个关于如何正确实现OAuth2客户机的工作示例或文档。
我将感谢任何帮助链接或只是一个例子(POM版本)来实现这一点。
提前谢谢
格雷戈
您需要做四件简单的事情:
步骤1:创建Facebook应用程序ID
首先,您需要创建Facebook开发者帐户,并为OAuth身份验证创建Facebook应用程序。
然后获取新Facebook应用的应用ID和应用机密,用于项目配置。请注意,在localhost上进行测试时,不需要指定重定向URI。
步骤2:添加Spring启动OAuth2客户端依赖项
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-oauth2</artifactId>
</dependency>
步骤3:为Facebook配置Spring OAuth2属性
spring:
application:
name: spring-oauth2-security-example
security:
oauth2:
client:
clientId: <client-id>
clientSecret: <clientSecret>
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
这是Facebook的特定设置,您只需要提供clientID(或App ID)和clientSecret或您的App密钥。当你创建应用程序时,这两者都可以在脸书开发者页面上找到。
步骤4:更新主类
@SpringBootApplication
@RestController
@EnableOAuth2Sso
public class SpringOauth2SecurityExampleApplication {
@GetMapping("/")
public String welcome(Principal principal) {
Map<String, Object> details = (Map<String, Object>)
((OAuth2Authentication) principal).getUserAuthentication().getDetails();
String userName = (String) details.get("name");
return "Hi " + userName + " Welcome to my application !!";
}
public static void main(String[] args) {
SpringApplication.run(SpringOauth2SecurityExampleApplication.class, args);
}
}
注意:需要注意的是,您需要将用于身份验证的endpointurl添加到Facebook上的“有效oAuth重定向url”设置中。因为oAuth只适用于特定的地址。在本例中,我们将在本地运行它,因此我将放置localhost:8080
和localhost:8080/login
步骤5:测试
转到localhost:8080
,它将自动重定向到OAuth,因为您站点上的所有内容都被限制访问,您必须首先通过身份验证。
希望这对你有帮助!
我希望这个博客能帮助你
https://www.devglan.com/spring-security/spring-security-oauth2-user-registration https://waynestalk.com/en/spring-security-oauth2-google-signin-explained-en/
这些博客解释得很清楚
所以我正在尝试为我正在制作的一个游戏使用线程。我对这门学科很陌生,所以我可能理解不正确。我的问题是currentThread()方法如何在java API的Thread类中工作。API说“返回对当前执行的线程对象的引用”,但据我所知,多个线程同时运行。怎么可能只返回一个正在执行的线程呢?
本文向大家介绍C++取得当前时间的方法,包括了C++取得当前时间的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C++取得当前时间的方法,分享给大家供大家参考。 具体实现方法如下: 希望本文所述对大家的C++程序设计有所帮助。
本文向大家介绍jquery获取当前日期的方法,包括了jquery获取当前日期的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jquery获取当前日期的方法。分享给大家供大家参考。 具体如下: PS:这里再为大家推荐几款时间及日期相关在线工具供大家参考使用: 在线日期/天数计算器: http://tools.jb51.net/jisuanqi/date_jisuanqi 在线日期计算器
本文向大家介绍用Java显示当前方法名称,包括了用Java显示当前方法名称的使用技巧和注意事项,需要的朋友参考一下 包含由当前堆栈跟踪元素表示的执行点的当前方法名称由java.lang.StackTraceElement.getMethodName()方法提供。 演示此的程序如下所示- 示例 输出结果 现在让我们了解上面的程序。 该方法用于获取当前方法名称,该名称包含由当前堆栈跟踪元素表示的执行点
本文向大家介绍jsp中获取当前目录的方法,包括了jsp中获取当前目录的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jsp中获取当前目录的实现方法,分享给大家供大家参考。具体实现方法如下: 1、利用System.getProperty()函数获取当前路径: 2、使用File提供的函数获取当前路径: File.getCanonicalPath()和File.getAbsolutePat
本文向大家介绍laravel 获取当前url的别名方法,包括了laravel 获取当前url的别名方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上路由为例 在模版中可以使用route('xiong.test')来获取该路由的真实地址。 在XiongTestController@index中,可以使用以下方法获取路由别名 输出结果为: 或者使用getName()方法直接获取别名 或者用