@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
jaylee4869 2020-08-20 19:04:25 +08:00
我自己也写过一个类似的。打在方法上,取的名字 `@NeedSign`
用 AOP 实现的。 |
4
Veneris OP @jaylee4869 哈哈,大概思路都是差不多的,我是做的时候没有基本没有开源的库,只好现写了一个
|