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)
    
  • 相关阅读:
    使用Zookeeper实现负载均衡原理
    Zookeeper windows环境安装
    Zookeeper基础入门介绍
    jsp
    未解决01
    继承中代码的执行顺序
    jquery02-jQuery效果=隐藏和显示+切换+淡入淡出+滑动+动画+回调+链
    jquery01-简介+语法+选择器+事件
    json01-json简介和语法
    ajax02-XMLHttpRequest 对象的使用
  • 原文地址:https://www.cnblogs.com/Bozh/p/3954382.html
Copyright © 2011-2022 走看看