nova.api.openstack.auth解析(ocata版本)
2019独角兽企业重金招聘Python工程师标准>>>
NoAuthMiddlewareBase解析
class NoAuthMiddlewareBase(base_wsgi.Middleware):"""如果请求头里没有指定对应的请求令牌,则返回一个伪造的令牌.""" def base_call(self, req, project_id_in_path, always_admin=True):if 'X-Auth-Token' not in req.headers:user_id = req.headers.get('X-Auth-User', 'admin')#设置默认的用户IDproject_id = req.headers.get('X-Auth-Project-Id', 'admin')#设置默认的项目IDif project_id_in_path:os_url = '/'.join([req.url.rstrip('/'), project_id])else:os_url = req.url.rstrip('/')res = webob.Response()# NOTE(vish): This is expecting and returning Auth(1.1), whereas # keystone uses 2.0 auth. We should probably allow # 2.0 auth here as well. res.headers['X-Auth-Token'] = '%s:%s' % (user_id, project_id)#伪造tokenres.headers['X-Server-Management-Url'] = os_url #设置urlres.content_type = 'text/plain' #设置content-type res.status = '204' return restoken = req.headers['X-Auth-Token']user_id, _sep, project_id = token.partition(':')project_id = project_id or user_idremote_address = getattr(req, 'remote_address', '127.0.0.1')if CONF.api.use_forwarded_for:remote_address = req.headers.get('X-Forwarded-For', remote_address)is_admin = always_admin or (user_id == 'admin')ctx = context.RequestContext(user_id,project_id,is_admin=is_admin,remote_address=remote_address)#封装请求上下文req.environ['nova.context'] = ctxreturn self.application
NoAuthMiddleware解析
class NoAuthMiddleware(NoAuthMiddlewareBase):#继承父类 @webob.dec.wsgify(RequestClass=wsgi.Request)def __call__(self, req):return self.base_call(req, True, always_admin=False)#调用父类的具体实现
转载于:https://my.oschina.net/jennerlo/blog/3006742
nova.api.openstack.auth解析(ocata版本)相关推荐
- Nova API的执行过程
一 用户命令到的HTTP请求 一般的 Openstack 用户和管理员能够通过执行简易的 Openstack Commands 来管理和使用 Openstack . 但需要注意的是,Openstack ...
- Nova API服务之Nova API服务的启动
Nova API的启动和工作流程.openstack的每个组件都提供API服务,用于接收和处理客户端的HTTP请求. Nova API服务是一个RESTful API服务. 1.Nova API服务的 ...
- OpenStack之Nova分析——Nova API服务
Nova是OpenStack中最核心的组件,可以说OpenStack中的其它组件都是为Nova服务的.所以Nova也是OpenStack最复杂的组件.Nova服务由多个子服务组成,这些子服务通过RPC ...
- nova api 分析
0. 总览 nova的服务在功能上主要分为应用层和逻辑层两类,nova-api就是应用层的服务,而nova-scheduler.nova-conductor等则是逻辑层服务.本文主要通过注释的方式讲述 ...
- Nova 启动虚拟机流程解析
目录 文章目录 目录 前言 从请求说起 nova-api service 阶段 前言 Nova 启动虚拟机的东西太多,持续更新- 从请求说起 无论是通过 Dashboard 还是 CLI 启动一个虚拟 ...
- [nova]nova api执行过程分析
新手,水平较低,很多地方还不是很理解,错漏在所难免,后续会慢慢完善的. 我总结了一下,想要通过读懂源代码来学习一个新技术,大概可以分为三个步骤走: 1.理解相关的类库的功能及使用. 2.理清代码中对象 ...
- Nova API简单介绍
Nova API是访问并使用Nova所提供的各种服务的唯一途径,作为客户端和Nova之间的中间层,Nova API扮演了一个桥梁,或者说中间人的角色,Nova API把客户端的请求传达给Nova,待N ...
- openstack nova 源码解析 — Nova API 执行过程从(novaclient到Action)
目录 目录 Nova API Nova API 的执行过程 novaclient 将 Commands 转换为标准的HTTP请求 PasteDeploy 将 HTTP 请求路由到具体的 WSGI Ap ...
- OpenStack Ocata版本国内代码贡献盘点
2017年2月23日,OpenStack迎来了它的第15个版本--Ocata版本的发布.为了更贴近用户需求,OpenStack基金会将新版本的发布时间从往年的4月份和10月份分别提前到2月份和8月份, ...
- openstack之安装Train版本
安装OpenStack-Train,Openstack版本发布以 A-Z 字母顺序来发布,目前Train版本为2019-10-16发布的版本 其中Victoria以上的版本系统上需要centos8以上 ...
最新文章
- Python OpenCV GrabCut进行前景分割和提取
- 《Python核心编程 》笔记-第二章+第三章
- ER TO SQL语句
- [python]---从java到python(02)---多线程,队列
- 李天平×××作诞生记——《亮剑.NET:.NET深入体验与实战精要》
- 用VC写Assembly代码(4)
- 高级IO(一)--UNIX环境高级编程读书笔记
- 2022 LINUX运维面试题目精选
- photoshopCS6软件的安装和破解方法
- 专属资料包——Ps基础、788款设计师字体、Ps品牌样机、《20款顶级vi品牌手册》、100款以上世界级ui设计、《世界级插画集》
- 如何在Mozilla Firefox中启用(或禁用)Cookie
- 论文阅读 视频生成(vid2vid) || Few-shot Video-to-Video Synthesis
- 使用wireshark检测RTP丢包问题
- ERROR command failed: npm install --loglevel error --legacy-peer-deps
- Spring学习笔记(一):眼见为实,先上一个简单例子
- 基于Android studio 的学生课堂管理app
- 刚子扯谈:市场供需关系决定生存
- python Matplotlib 系列教程(五)——绘制叠堆图
- c++调用flash播放器
- PHP长方体体积,《长方体的体积》教学设计
热门文章
- Atitit mybatis 3 3.2 3.3 3.4 新特性attilax总结
- Atitit (Sketch Filter)素描滤镜的实现 图像处理 attilax总结
- Atitti.java android反编译解决方案-----虚拟机方案
- paip.索引的种类以及实现attilax 总结
- XSS跨站点脚本攻击解决方案
- 从APP到API:金融科技C端到B端的思考
- “数据治理”:重构和愿景
- (转)《麻省理工科技评论》发布2017年全球十大突破性技术榜单
- 【图像处理】基于matlab GUI图像直方图+滤波+小波变换+分割处理系统【含Matlab源码 608期】
- html让一行文字在两行,css单行两行文本自适应问题