zoukankan      html  css  js  c++  java
  • [原]Paste.deploy 与 WSGI, keystone 小记

    Paste.deploy 与 WSGI, keystone 小记

    名词解释:

    • Paste.deploy 是一个WSGI工具包,用于更方便的管理WSGI应用, 可以通过配置文件,将WSGI应用加载起来.
    • keystone 是 openstack的各模块之间调用时候采取的认证,主要方式是在WSGI接口下增加filter,对调用者做身份验证.

    Paste.deploy 详细介绍:

    • paste.deploy 通过 loadapp(configPath)来启动WSGI应用, 其中configPath 包含了对应WSGI应用的信息

    • 在config File中有对应如下配置,用于启动对应WSGI应用

        [app:app_name]
        paste.app_factory = yourproject.web:app_factory
      
    • app_factory会返回一个application的callable object, 此cb接受WSGI标准的两个参数:

        class application():  
            def __init__(self):  
                pass  
            def __call__(self,environ, start_response):  
                start_response("200 OK",[("Content-type", "text/plain")])  
                return ["Paste Deploy LAB",]  
        
            envrion             # 环境信息
            start_response      # 回调
    
    • app_factory是一个callable object,接收 global_conf, **kwargs两个参数(配置信息)

    • 在paste.deploy 中配置 filter, 可以让WSGI应用在调用前被hook,先调用filter的对象.

        filter:authtoken
        paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
      
    • filter_factory与app_factory 一样,接收配置参数,并返回一个 callable object, 此cb 会在每次调用 WSGI app时候调用,keystone也就是在这里对API的认证做了hook.

         class Filter():  
            def __init__(self,app):  
                self.app = app  
                pass 
                
            def __call__(self,environ,start_response):  
                print "filter hook here."  
                return self.app(environ,start_response)
    
  • 相关阅读:
    九度OJ 1283 第一个只出现一次的字符
    九度OJ 1514 数值的整数次方【算法】
    九度OJ 1512 用两个栈实现队列 【数据结构】
    九度OJ 1513 二进制中1的个数
    九度OJ 1510 替换空格
    九度OJ 1511 从尾到头打印链表
    dom4J使用笔记
    XML的学习
    jaxp使用笔记
    json-lib使用笔记
  • 原文地址:https://www.cnblogs.com/Bozh/p/3954382.html
Copyright © 2011-2022 走看看