keystone中的参数校验
来源:互联网 发布:网络预约汽车运输证 编辑:程序博客网 时间:2024/06/05 06:07
keystone中无论是创建用户、更新用户还是其它操作,在controller方法的入口处,一般首先对入参进行基本校验。
keystone封装了一个通用的类SchemaValidator,位于keystone\common\validation\validators模块中。
代码如下所示:
def create_user(self, request, user): validation.lazy_validate(schema.user_create, user)def lazy_validate(request_body_schema, resource_to_validate) schema_validator = validattors.SchemaValidator(request_body_schema) schema_validator.validate(resource_to_validate)传入的参数:schema.user_create user_create = { 'type': 'object', 'properties': _user_properties, //表示待校验的property, 引用_user_properties(创建用户的json体中) 'required': ['name'],//json体中,必须包含那个(些)property 'minProperties': 1,//json体中,至少包含一个property 'options': {//不懂 'type': 'object' }, 'additionalProperties': True//是否允许有额外的property,如果为False则json体只能是_user_properties子集}_user_properties = { 'default_project_id': validation.nullable(parameter_types.id_string),//表示项目Id也可以为null 'domain_id': parameter_types.id_string,//string类型,最小长度1最大长度64,正则匹配 'enabled': parameter_types.boolean,//必须是bolean型 'name': _identity_name,//String类型,最小长度1,正则匹配 'password': { 'type': ['string', 'null']//String类型,或者为null }, 'options': ro.USER_OPTIONS_REGISTRY.json_schema}parameter_types.id_string:id_string = { 'type': 'string', 'minLength': 1, 'maxLength': 64, 'pattern': '^[a-zA-Z0-9-]+$'}_identity_name = { 'type': 'string', 'minLength': 1, 'pattern': '[\S]+'}
只支持对string、boolean类型的数值检查。如果是整型,json体中,value也需要写成字符串的形式。
阅读全文
0 0
- keystone中的参数校验
- keystone 命令参数
- keystone中的domain
- keystone中的名词介绍
- 参数校验
- keystone
- keystone
- keystone
- keystone
- Keystone
- keystone
- OpenStack 在Centos 6.4中的安装--keystone
- openstack-keystone中的权限管理理解
- spring aop参数校验
- JQValidate校验参数使用说明
- java标准--校验参数
- javaweb参数校验
- laravel请求参数校验
- 【UE4 shader】防护盾shader
- MySQL导出数据库、数据库表结构、存储过程及函数
- vmware linux nat模式设置静态ip
- 手把手教你把基于 eclipse 的项目转换为基于 idea 的项目
- HDU-4738Caocao's Bridges
- keystone中的参数校验
- 指定整数数组中输出和为一整数的所有组合
- Linux进程间通信
- IDEA----自动生成数据库实体类
- React全家同学习之ES6之字符串的扩展
- SIP初步
- 【头条】迈外迪新产品背后的商业逻辑
- python3.5 pip install markdown 时发生 "ValueError:the shebang (b'#!c:...)is not decode from utf8"
- Maven的聚合及继承