没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
微服务
地址
端口
描述
sso-auth-server www.auth.com 8888
认证中心
sso-api-gateway www.gateway.com 8866
服务网关
sso-order-server www.order.com 8899
订单微服务
sso-product-server www.product.com 8877
商品微服务
sso-portal-password www.portal.com 8855
前端工程
http://www.portal.com:8855/home.html
通过浏览器访问
LoginInterceptor home.html
不需要登陆
点击商品详情链接
http://www.portal.com:8855/product/"+productId
LoginInterceptor
判断是否需要登陆
判断是否需要登陆
需要登陆
session中是否有登陆信息
重定向到登陆页面,带入当前
的url
由于还没登陆,没有登陆信息
http://www.portal.com:8855/login.html?targetUrl=http://www.portal.com:8855/product/2
其中:targetUrl=http://www.portal.com:8855/product/2
请求登陆接口 @RequestMapping("/login")
构建密码模式请求头以及请求参数
http://api-gateway/oauth/token
请求到达网关
1:密码模式认证请求
sso-api-gateway
经过网关认证过滤器
AuthorizationFilter
shouldSkip(reqPath)
/oauth/token该请求本来就
是获取token,不需要拦截
Y
经过网关鉴权过滤器
AuthenticationFilter
shouldSkip(reqPath)
/oauth/token该请求本来就
是获取token,不需要拦截
sso-auth-server
Y:请求到了认证服务器
把token存放到session中
返回状态码"000005"表示登
陆成功
ajax解析到状态码为000005
跳转到
http://www.portal.com:8855/
product/"+productId
跳转到目标地址
LoginInterceptor
判断是否需要登陆
session中是否有登陆信息
需要登陆
@RequestMapping("/product/{id}")
session中有登陆信息,请求到商品详情接口
把token从session中取出来,构建到请求头中
sso-api-gateway
请求到达网关
shouldSkip(reqPath)
经过网关认证过滤器
AuthorizationFilter
/product/{id}请求需要校验token
网关校验token
http://auth-server/oauth/check_token
N
sso-auth-server
请求授权服务器
把token_info存到请求中
经过网关鉴权过滤器
AuthenticationFilter
shouldSkip(reqPath)
/product/{id}请求需要校验token
从token_info中解
析登陆用户权限
校验权限
sso-product-server
校验通过
商品详细页面
返回商品信息
点击购买
http://www.portal.com:8855/order/createOrder
LoginInterceptor
拦截
session中是否有登陆信息
需要登陆
返回登陆页面
跳转到登陆页面
认证服务器返回的
token
否
网关校验token,鉴权等
。。。。。
有
sso-order-server
书看不完了
- 粉丝: 20
- 资源: 364
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0