前景提要
@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 示例。
感谢。