💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] # **1. 启用注解** `@GoEnableSigner` `@GoSigner` # **2. 配置文件** ``` FastBoot: signer: header: signer # 签名键,默认sign secret: FastBoot!@# # 加密串,默认FastBoot!@# ``` # **3. 注意事项** > 如需使用,需开启@GoEnableSigner,方法上加入@GoSigner注解即可 ## **3.1 计算签名** ``` /** * 参数签名为对Map参数按照key的顺序排序后拼接为字符串,然后根据提供的签名算法生成签名字符串 拼接后的字符串键值对之间无符号,键值对之间无符号,忽略null值 * * @param args */ public static void main(String[] args) { Dict dict = Dict.create().set("a", 1).set("b", 2); System.out.println(SecureUtil.signParams(DigestAlgorithm.MD5, dict, "FastBoot!@#")); } ``` 参数a=1&b=2,sign=ed1681dab33d1289bd351b6ea72f54e5 # **4. 示例说明** ## **4.1 效验签名** ``` @GoSigner @RequestMapping("/sign") public Result sign(String p1, String p2) { return R.succ(Lists.newArrayList(p1, p2)); } ``` ### **4.1.1 不传返回** ``` { "code": 6000, "msg": "签名错误:非法请求", "success": false } ``` ### **4.1.2 传错返回** ``` { "code": 6000, "msg": "签名错误:验签失败", "success": false } ``` ## **4.2 忽略效验** ``` @GoSigner(ignore = true) @RequestMapping("/ignore") public Result ignore(String p1, String p2) { return R.succ(Lists.newArrayList(p1, p2)); } } ``` ignore:调试使用,默认为false关闭,当ignore为true则不验证