春天启动和Oauth2

350 阅读2分钟

在本指南中,我们将学习如何使用Oauth2保护Spring Boot应用程序。本教程适用于有使用Spring框架开发Web应用经验并对Oauth2有基本了解的开发者。

使用的技术

本指南中使用的技术是。

  1. Spring Boot
  2. Oauth2
  3. MongoDB
  4. 梯形图(Gradle

依赖关系

以下是所需的依赖性列表。

medium.com/media/8c3e0…

授权服务器

让我们来配置一下授权服务器。让我们把_rokin-client_注册为一个客户端_。_ 我们将使用内存中的令牌存储。

medium.com/media/26dc2…

这里,allowFormAuthenticationForClients()方法用于使用表单参数而不是基本认证来验证客户端。

资源服务器

medium.com/media/1b647…

安全配置

medium.com/media/f98e6…

这里,我们将使用BCryptPasswordEncoder来加密用户的密码。_密码授予类型_需要AuthenticationManagerBean。

用户细节配置

现在我们已经配置了安全设置、授权服务器和资源服务器,让我们深入到用户配置中。我们将使用MongoDB来存储用户详细信息。让我们从创建一个用户实体开始。

medium.com/media/9a35b…

现在,我们将创建一个用户存储库来对_用户_集合进行数据库查询。我们将使用Spring Data MongoDB来实现这一目的。

medium.com/media/9a3d1…

为了让Spring Data MongoDB工作,我们需要在application.properties文件中指定数据库名称、主机、端口、用户名和密码。

medium.com/media/23f8a…

为了验证用于登录的凭证是否正确,我们需要创建一个CustomUserDetailsService类,它实现了org.springframework.security.core.userdetails.UserDetailsService。在这个类中,我们将从数据库中获取用户并将其映射到org.springframework.security.core.userdetails.User。

medium.com/media/573de…

现在我们所有的配置都完成了,让我们在应用程序启动时在数据库中插入一个用户。这一点很重要,因为如果数据库中没有用户,我们就不能使用密码授权生成访问令牌。

medium.com/media/26d88…

令牌端点

访问和刷新令牌

要获得访问和刷新令牌,首先,在授权头中用你的_客户ID_和_客户秘密_更新你的请求。

然后,在你的正文中设置 grant_type密码并提供你的 用户名密码.

使用密码授予的访问和刷新令牌

从刷新令牌中获取访问令牌

就像获得访问令牌一样,首先,在授权头中用你的客户ID和客户秘密更新你的请求。然后,在你的正文中设置 grant_type刷新令牌 ,并提供 Refresh_token.

使用 refresh_token 授予访问和刷新令牌

如果你想查看github上的完整项目,请访问github.com/rokinmaharj…

本指南就到此为止。如果你喜欢它,别忘了拍手。)