Spring cloud 整合oauh2.0 授权认证

oauh2.0就不多讲了,不明白先了解下。

之前springboot篇也已经有案例了。

https://blog.csdn.net/niugang0920/article/details/80036954

不过之前是资源服务器和授权服务器在一块没有实现分离。

在spring cloud篇实现授权和资源服务器的分离。因为我们最终是向着spring cloud生态看齐。如下图,是在网站找的,基本是一个完整的生态链,网关服务下一层就是授权和认证服务。

代码太多我就不一一贴了。源码地址:

https://gitee.com/niugangxy/springcloud/tree/master/spring-cloud-learn-code/929.spring-cloud-oauth2

附件数据库脚本:

/*
SQLyog Ultimate v12.09 (64 bit)
MySQL - 5.7.17-log : Database - springboot
*********************************************************************
*/


/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`springboot` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `springboot`;

/*Table structure for table `user` */

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  `password` varchar(200) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `phone` varchar(32) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8;

                                                                               微信公众号: 

                                               

                                                                             JAVA程序猿成长之路

                         分享资源,记录程序猿成长点滴。专注于Java,Spring,SpringBoot,SpringCloud,分布式,微服务。 

 

Spring Cloud Security 为我们提供了 OAuth2 Client 和 OAuth2 Resource Server 的自动配置。我们可以通过在 Spring Boot 应用程序中添加以下依赖关系来使用它们: ```xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-oauth2-client</artifactId> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-oauth2-resource-server</artifactId> </dependency> ``` 这将添加 Spring Security 和 OAuth2 Client 和 OAuth2 Resource Server 的所有必需组件。 在配置文件中配置 OAuth2 客户端应用程序的详细信息,如下所示: ```yaml spring: security: oauth2: client: registration: github: client-id: *** client-secret: *** provider: github: authorization-uri: https://github.com/login/oauth/authorize token-uri: https://github.com/login/oauth/access_token user-info-uri: https://api.github.com/user user-name-attribute: login ``` 在这里,我们配置了一个名为“github”的 OAuth2 客户端应用程序,并提供了必要的详细信息,例如客户端 ID、客户端密钥和提供者详细信息。 我们可以使用 `@EnableOAuth2Sso` 注解启用单点登录(SSO)支持。如果我们要使用 OAuth2 作为资源服务器,则可以使用 `@EnableResourceServer` 注解来启用资源服务器支持。 我们可以在需要保护的端点上使用 `@EnableOAuth2Sso` 或 `@EnableResourceServer` 注解来保护它们。例如,以下是一个使用 `@EnableResourceServer` 注解保护端点的示例: ```java @RestController @EnableResourceServer public class UserController { @GetMapping("/user") public Principal user(Principal principal) { return principal; } } ``` 这里,我们使用 `@EnableResourceServer` 注解启用资源服务器支持,并在 `/user` 端点上保护它。在这里,我们使用 `Principal` 对象返回当前经过身份验证的用户信息。 以上是 Spring Cloud Security 集成 OAuth2 的基本介绍,你可以根据需要进一步了解和配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值