
@RestController @RequestMapping("api") @SignedMapping public class TestController { @RequestMapping("test") public String test(@RequestBody SignedParam signedParam) { // the request data is signedParam.getData() in JSON // then do something in service return "SUCCESS"; } } 只需要在 Controller 加上 @SignedMapping 注解,即说明该接口需要签名校验。
SignedParam 类即为包含了签名,数据等的实体类,使用 Json 格式接收请求。
支持重放攻击的防护,也可以自定义实体类和加密规则。
开源地址:API-Signed
仓库包含接入和调用文档,以及基于 Spring boot 的 web 示例。
感谢。
1 vinko 2020-08-18 18:26:32 +08:00 via iPhone 赞一个 |
3 lavvrence 2020-08-20 19:04:25 +08:00 我自己也写过一个类似的。打在方法上,取的名字 `@NeedSign` 用 AOP 实现的。 |
4 Veneris OP @jaylee4869 哈哈,大概思路都是差不多的,我是做的时候没有基本没有开源的库,只好现写了一个 |