本文地址:http://blog.csdn.net/spch2008/article/details/9700071
这里主要说一下,权限信息的加载过程。
quantum\openstack\common\policy.py中
全局变量_checks = {}是一个字典,存放各种权限验证类。比如;
{'rule':RuleCheck, 'role':RoleCheck},由于使用了装饰器,所以,此模块被加载时,_checks就被初始化了,具体可参见带参数的装饰器。
def register(name, func=None):
def decorator(func):
_checks[name] = func
return func
if func:
return decorator(func)
return decorator
@register("role")
class RoleCheck(Check):
def __call__(self, target, creds):
"""Check that there is a matching role in the cred dict."""