CloudStack API访问权限控制
时间:2014-04-29 10:42:46
收藏:0
阅读:629
在我写开始之前,请先看下CS中国社区的一篇文章http://www.cloudstack-china.org/2012/12/1465.html,在第1点里讲了关于权限级别,command属性文件位置等问题。不过4.3现在的除了command.properties外,作者提到的其它properties文件现在好像都没有了,而且command里面现在形如***command=15,“=”后面不再有处理请求命令的类。
API请求由ApiServlet拦截后,会调用verifyRequest()方法做该用户是否有调用该API的权限验证。
关键处理逻辑是在StaticRoleBasedAPIAccessChecker类。
该类实现APIChecker接口,具体看下图:
commandsPropertiesOverrides变量是存放所有command名称的Set,而commandsPropertiesRoleBasedApisMap是RoleType与command对应的Map。
configure()方法读取出command.properties文件并调用processMapping()将apiName增加到commandsPropertiesOverrides中,将roleType和apiName加到commandsPropertiesRoleBasedApisMap中。
评论(0)