##基于redis的AES加解密工具包
2/4/ Bruce 0.8.2 初始版本
2/5/ Bruce 0.8.3 补充调用及配置说明,更新引用方式
2/5/ Bruce 0.9.1 新增鉴权模块
3/9/ Bruce 0.9.9 bugfix
7/23/ Bruce 0.9.9.3 新增代理模块,用于修饰需要鉴权的函数
8/18/ Bruce 1.0 新增日志记录功能
###使用方法:
####1、配置全局变量
变量名|类型|用途|示例
REDIS_ADDRESS|字符串|redis服务器地址,需要带上ip、端口、库号|127.0.0.1:6379/1
COMMON_SALT|字符串|解密密钥|0648ea5562efffee
APPLICATION_NAME|字符串|cad应用名|mms
APP_CONFIG_PREFIX|字符串|cad配置前缀|app-config
####2、引入模块
from cad.cad_util import CadUtil # 数据获取模块
from cad.app_config_util import AppConfigUtil # 用户鉴权模块
from cad.proxy import cad_proxy # 鉴权代理模块
####3、使用
cad_util = CadUtil()
res = util.get(ak)
ak为应用对应的ak键
res 即得到的解析结果
结果格式如下
{ "ak": "0648ea5562efffee", "sk": "1e058d312eb61448", "permissions": { "app_1": ["auth_1", "auth_2"], "app_2': ["auth_3", "auth_4"] } }
格式说明:ak: 字符串,应用的ak
sk: 字符串,应用的sk
permissions: 字典,应用的权限清单
permissions的每个键为该ak所拥有的其他应用的权限的应用名称
permissions每个键的值为该ak所拥有的对应应用的权限列表
app_config_util = AppConfigUtil(app_id)
校验ak是否有某应用的某个权限权限
app_config_util.check(ak, sk, auth_code)
校验ak是否有某应用的任意权限
app_config_util.check(ak,sk)
参数说明:ak: 传入的ak
sk: 传入的sk
app_id: 判断ak是否有该应用的权限
auth_code: 判断ak是否有app下auth_code的权限,如果不传则判断ak是否有app的任意权限
结果说明:
True: 校验成功
False: 校验失败,原因如下:aksk不匹配
ak没有对应app的权限
ak没有对应app的auth_code权限
抛出异常CadException:
ak不存在
@cad_proxy(auth_code, error_response)
def view(self, request):
pass
auth_code 为被修饰方法view对应的权限code,由中台管理系统统一配置
error_response 为处理异常的对象,可以不传,默认抛出ProxyException类,可以自行定义。自行定义的对象需要接受一个参数,用于表示异常的原因标签:
欢迎加入QQ群-->: 979659372
推荐PyPI第三方库