V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Veneris
V2EX  ›  分享创造

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

  •  
  •   Veneris ·
    viticis · 2020-08-18 17:07:52 +08:00 · 2659 次点击
    这是一个创建于 1344 天前的主题,其中的信息可能已经有所发展或是发生改变。
    @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 示例。
    感谢。

    4 条回复    2020-08-22 22:28:09 +08:00
    vinko
        1
    vinko  
       2020-08-18 18:26:32 +08:00 via iPhone
    赞一个
    Veneris
        2
    Veneris  
    OP
       2020-08-19 08:51:42 +08:00
    @vinko 感谢
    jaylee4869
        3
    jaylee4869  
       2020-08-20 19:04:25 +08:00
    我自己也写过一个类似的。打在方法上,取的名字 `@NeedSign`
     用 AOP 实现的。
    Veneris
        4
    Veneris  
    OP
       2020-08-22 22:28:09 +08:00
    @jaylee4869 哈哈,大概思路都是差不多的,我是做的时候没有基本没有开源的库,只好现写了一个
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3741 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:40 · PVG 18:40 · LAX 03:40 · JFK 06:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.