码迷,mamicode.com
首页 > 编程语言 > 详细

springcloud玩转单点登录【oauth】

时间:2019-12-28 16:13:31      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:没有   脚本   一个   nbsp   gateway   系统   现在   客户   info   

   随着公司项目的庞大,单点登录变得尤为重要,那么怎么实现单点登录,下面已oauth为标准实现单点登录。

【特别鸣谢:魔乐科技,附上官网:www.mldn.cn】

 

1:项目组织结构

本项目为oAuth修改的启动项目结构,在该结构之中基本定义模块如下:
1、microauth:定义公共的父pom文件,用于所有相关依赖包配置;

2、microauth-api:定义公共Service接口,同时在该接口上还提供有相应的Fallback配置、Feign配置注解、VO类定义;

3、microauth-eureka-server:Eurea注册与发现服务,所有微服务都注册到此处,该服务端口为7001;

4、microauth-provider-dept-8001:定义部门服务信息,该服务使用mldn8001数据库,同时提供有配置脚本,在本服务之中将主要结合MyBatis进行数据库操作,该微服务使用的是8001端口;

5、microauth-zuul-gateway-9501:zuul网关服务接口,运行在9501端口;

6、microauth-consumer:消费端微服务,主要通过zuul调用dept微服务;

所有的服务均没有配置Spring-Security开发包,只提供一个基本访问处理流程。

修改hosts文件,本次使用到的主机名称如下:

127.0.0.1 dept-8001.com
127.0.0.1 eureka-7001.com
127.0.0.1 gateway-9501.com
127.0.0.1 oauth-8080.com
127.0.0.1 consumer.com

 

项目的组织结构如下图,图中的oauth认证中心就是我们说的单点登录服务器,提供认证、授权保存服务;

下面要演示的就是怎么通过web客户端【springboot】访问我们的微服务,这里就是如图的部门微服务;

服务提供者暴露的接口如果是裸露的这是多么可怕的事情,所以我们要做的就很简单,怎么去访问我们这个受保护的服务;

现在的系统大都要求支持三高:高并发、高可用、高性能

所以,服务不做集群是不行的,集群你得有多个服务节点不是,你项目当中会有多少个微服务,你每一个微服务都要有多个节点的话,那我客户端怎么访问你哦?

注册中心帮我们解决了这一个难题,把你所有的服务都放到一个中心的位置去,我服务的调用者只关心你这个注册中心就可以了,此图为简要说明,先画了一个注册中心,

按理,注册中心也得集群处理。此图先不说明。

有的注册中心还不行,还是不能实现负载均衡呀,所以feign就出来了,feign是个啥玩意,它就是转门搞负载均衡的,让你的远程调用就像是本地的接口调用一样。

有的feign还不够,你还得来一层代理网关,帮你代理转发,那个东西就叫zuul。

技术图片

 

 

 

2:目录结构

技术图片

 

 

3:演示

a:启动注册中心,将部门微服务、和代理网关注册到注册中心当中

技术图片

 

 b:此时访问部门微服务是访问不了,因为加了安全认证

 

技术图片

 

 

c:启动CAS单点登录服务器并访问

http://mermaid:hello@oauth-server.com:8080/oauth/authorize?client_id=cmldn&response_type=code&redirect_uri=http://www.baidu.com

 

技术图片

 

 

 

d:使用curl 获取access_token

 

curl -X POST -H "Content-Type:application/x-www-form-urlencoded" -d "grant_type=authorization_code&code=cKXoVK&redirect_uri=http://www.baidu.com" "http://cmldn:cjava@oauth-server.com:8080/oauth/token"

 

技术图片

 

 

 

 

e:拿到access_token就可以访问我们受保护的资源了

技术图片

 

 技术图片

 

 

f:访问zuul代理网关需要登录

技术图片

 

 

 

输入用户和密码就可以登录了

技术图片

 

g:通过客户端【springboot】访问

技术图片

 

 

 

技术图片

springcloud玩转单点登录【oauth】

标签:没有   脚本   一个   nbsp   gateway   系统   现在   客户   info   

原文地址:https://www.cnblogs.com/xiaoxianshao/p/12090399.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!