×

api-wrap服务端安全签名验签

消耗积分:0 | 格式:zip | 大小:0.10 MB | 2022-05-07

刘埃生

分享资料个

授权协议 Apache
开发语言
操作系统 跨平台
软件类型 开源软件
所属分类 管理和监控安全相关

软件简介

服务端安全签名验签

引入jar包

gradle

compile 'com.seelyn:api-wrap-boot:{version}'

maven


    com.seelyn
    api-wrap-boot
    {version}

使用示例

  • 使用EnableApiWrap注解,开启API Wrap功能
@SpringBootApplication
@EnableApiWrap
public class WrapWebApplication {

    public static void main(String[] args) {
        SpringApplication.run(WrapWebApplication.class, args);
    }

}
  • 在controller类方法或类上添加@ApiWrap注解, 注解也可以自定义处理类,只有使用了注解的类和方法才能接收签名验签请求
@ApiWrap
@PostMapping(value = "/web")
public WrapRequest web(@RequestBody WrapRequest request) {
    return request;
}
  • 自定义API签名验签处理类
@ApiWrap(value=CustomWrapHandler.class)
CustomWrapHandler类需要实现WrapHandler接口
  • WrapRequest 是统一的API验证请求类,其中泛型 DefaultWrapData类需要继承WrapData类
public class WrapRequest {

    private String appKey;
    private String signature;
    private long timestamp;
    private int nonce;
    private T data;
    //setter getter省略.... 
}
import com.seelyn.apiwrap.WrapData;
import com.seelyn.apiwrap.annotation.SignIgnore;

public class DefaultWrapData extends WrapData {

    // SignIgnore 注解标识标识忽略属性用于签名
    @SignIgnore
    private String name;
    private String url;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }
}
  • 存储appKey和appSecret用于请求验证
@Autoware
private WrapStore wrapStore;

// 存储密钥
wrapStore.putSecret(appKey, appSecret);
  • 配置文件
#===========api wrap===========
# app密钥,若用户没有自定义,则使用此
api.wrap.secret=testjjhdsa
# 单位秒,请求时间和服务器时间不能超过300秒
api.wrap.legal-time=300
#===========api wrap redis=============
spring.redis.host=localhost
spring.redis.port=6379
spring.redis.database=0
 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !