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版本)相关推荐

  1. Nova API的执行过程

    一 用户命令到的HTTP请求 一般的 Openstack 用户和管理员能够通过执行简易的 Openstack Commands 来管理和使用 Openstack . 但需要注意的是,Openstack ...

  2. Nova API服务之Nova API服务的启动

    Nova API的启动和工作流程.openstack的每个组件都提供API服务,用于接收和处理客户端的HTTP请求. Nova API服务是一个RESTful API服务. 1.Nova API服务的 ...

  3. OpenStack之Nova分析——Nova API服务

    Nova是OpenStack中最核心的组件,可以说OpenStack中的其它组件都是为Nova服务的.所以Nova也是OpenStack最复杂的组件.Nova服务由多个子服务组成,这些子服务通过RPC ...

  4. nova api 分析

    0. 总览 nova的服务在功能上主要分为应用层和逻辑层两类,nova-api就是应用层的服务,而nova-scheduler.nova-conductor等则是逻辑层服务.本文主要通过注释的方式讲述 ...

  5. Nova 启动虚拟机流程解析

    目录 文章目录 目录 前言 从请求说起 nova-api service 阶段 前言 Nova 启动虚拟机的东西太多,持续更新- 从请求说起 无论是通过 Dashboard 还是 CLI 启动一个虚拟 ...

  6. [nova]nova api执行过程分析

    新手,水平较低,很多地方还不是很理解,错漏在所难免,后续会慢慢完善的. 我总结了一下,想要通过读懂源代码来学习一个新技术,大概可以分为三个步骤走: 1.理解相关的类库的功能及使用. 2.理清代码中对象 ...

  7. Nova API简单介绍

    Nova API是访问并使用Nova所提供的各种服务的唯一途径,作为客户端和Nova之间的中间层,Nova API扮演了一个桥梁,或者说中间人的角色,Nova API把客户端的请求传达给Nova,待N ...

  8. openstack nova 源码解析 — Nova API 执行过程从(novaclient到Action)

    目录 目录 Nova API Nova API 的执行过程 novaclient 将 Commands 转换为标准的HTTP请求 PasteDeploy 将 HTTP 请求路由到具体的 WSGI Ap ...

  9. OpenStack Ocata版本国内代码贡献盘点

    2017年2月23日,OpenStack迎来了它的第15个版本--Ocata版本的发布.为了更贴近用户需求,OpenStack基金会将新版本的发布时间从往年的4月份和10月份分别提前到2月份和8月份, ...

  10. openstack之安装Train版本

    安装OpenStack-Train,Openstack版本发布以 A-Z 字母顺序来发布,目前Train版本为2019-10-16发布的版本 其中Victoria以上的版本系统上需要centos8以上 ...

最新文章

  1. Python OpenCV GrabCut进行前景分割和提取
  2. 《Python核心编程 》笔记-第二章+第三章
  3. ER TO SQL语句
  4. [python]---从java到python(02)---多线程,队列
  5. 李天平×××作诞生记——《亮剑.NET:.NET深入体验与实战精要》
  6. 用VC写Assembly代码(4)
  7. 高级IO(一)--UNIX环境高级编程读书笔记
  8. 2022 LINUX运维面试题目精选
  9. photoshopCS6软件的安装和破解方法
  10. 专属资料包——Ps基础、788款设计师字体、Ps品牌样机、《20款顶级vi品牌手册》、100款以上世界级ui设计、《世界级插画集》
  11. 如何在Mozilla Firefox中启用(或禁用)Cookie
  12. 论文阅读 视频生成(vid2vid) || Few-shot Video-to-Video Synthesis
  13. 使用wireshark检测RTP丢包问题
  14. ERROR command failed: npm install --loglevel error --legacy-peer-deps
  15. Spring学习笔记(一):眼见为实,先上一个简单例子
  16. 基于Android studio 的学生课堂管理app
  17. 刚子扯谈:市场供需关系决定生存
  18. python Matplotlib 系列教程(五)——绘制叠堆图
  19. c++调用flash播放器
  20. PHP长方体体积,《长方体的体积》教学设计

热门文章

  1. Atitit mybatis 3 3.2 3.3  3.4 新特性attilax总结
  2. Atitit (Sketch Filter)素描滤镜的实现  图像处理  attilax总结
  3. Atitti.java android反编译解决方案-----虚拟机方案
  4. paip.索引的种类以及实现attilax 总结
  5. XSS跨站点脚本攻击解决方案
  6. 从APP到API:金融科技C端到B端的思考
  7. “数据治理”:重构和愿景
  8. (转)《麻省理工科技评论》发布2017年全球十大突破性技术榜单
  9. 【图像处理】基于matlab GUI图像直方图+滤波+小波变换+分割处理系统【含Matlab源码 608期】
  10. html让一行文字在两行,css单行两行文本自适应问题