最近要开放 API 给第三方调用,造了个小轮子,已开源

2020-08-18 17:07:52 +08:00
 Veneris
@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 示例。
感谢。

2869 次点击
所在节点    分享创造
4 条回复
vinko
2020-08-18 18:26:32 +08:00
赞一个
Veneris
2020-08-19 08:51:42 +08:00
@vinko 感谢
jaylee4869
2020-08-20 19:04:25 +08:00
我自己也写过一个类似的。打在方法上,取的名字 `@NeedSign`
 用 AOP 实现的。
Veneris
2020-08-22 22:28:09 +08:00
@jaylee4869 哈哈,大概思路都是差不多的,我是做的时候没有基本没有开源的库,只好现写了一个

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/699346

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX