当前位置: 首页 > 软件库 > 管理和监控 > 安全相关 >

api-wrap

服务端安全签名验签
授权协议 Apache
开发语言
所属分类 管理和监控、 安全相关
软件类型 开源软件
地区 国产
投 递 者 周浩博
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

服务端安全签名验签

引入jar包

gradle

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

maven

<dependency>
    <groupId>com.seelyn</groupId>
    <artifactId>api-wrap-boot</artifactId>
    <version>{version}</version>
</dependency>

使用示例

  • 使用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<DefaultWrapData> web(@RequestBody WrapRequest<DefaultWrapData> request) {
    return request;
}
  • 自定义API签名验签处理类
@ApiWrap(value=CustomWrapHandler.class)
CustomWrapHandler类需要实现WrapHandler接口
  • WrapRequest 是统一的API验证请求类,其中泛型 DefaultWrapData类需要继承WrapData类
public class WrapRequest<T extends WrapData> {

    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
  • package com.newedu.jb.day14.exercise; /**  * 八种基本数据类型包装类  *   * java 有8中基本数据类型:  *  byte short char int  long float double boolean  *    * java 也提供了8个基本数据类型对应的包装类  * Byte Short Character Integer Long

  • 首先把官方指导API挂上 gulp入门指南 gulp-css-wrap 在研究elementUI在线切换皮肤功能时,看到大佬经验中都用到了gulp-css-wrap(批量为css文件扩展命名空间)工具。 实现思路: 1.将所有皮肤样式都通过主入口import进来 2.通过点击样式切换事件来改变body的class名 那么问题来了,所有样式都需要增加一个class拓展,手动做?神器来了,gulp-c

 相关资料
  • 请帮助我不知道我的代码有什么问题。不需要签名的终结点工作正常,所以我想这是我如何获取签名的问题。我收到此错误: API文档:https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md 签名endpoint需要在查询字符串或请求正文中发送一个附加参数signature。endpoint使用

  • 在任何给定的POD中,服务帐户令牌被挂载在位置。 /var/run/secrets/kubernetes.io/serviceaccount/token 我想了解这个令牌是如何签名的。Kubernetes在签名此令牌时使用什么密钥?如何访问有助于脱机签名验证的公钥 /var/run/secrets/kubernetes.io/serviceaccount/ca.crt-我尝试使用与此证书关联的公钥

  • 这是一个既试图为我的特定用例找到解决方案,又试图记录我为遵循此过程的任何其他人所做的努力的问题。 我们有一个RESTful服务器和一个iOS应用程序。我们有自己的证书颁发机构,服务器有一个根证书颁发机构和一个自签名证书。我们按照此过程生成以下文件: http://datacenteroverlords.com/2012/03/01/creating-your-own-ssl-certificate

  • 我正在构建一个Android应用程序--其中的一个关键部分将包括与服务器API的集成。该应用程序只是一个辅助项目,我真的只是在寻找我计划的API安全性的验证和最佳实践的建议,以及其他应用程序如何做到这一点。 该应用程序将是移动的(首先,没有网站)-我希望能够创建用户帐户从应用程序,一旦注册,使用中央网络API访问/更新安全的用户特定的内容。 可公开访问的注册和登录的POSTendpoint 用户特

  • 这是个例外 这是我的密码

  • Navicat 为你的服务器提供安全性管理工具。你可以新建、编辑、删除用户、授予或撤消在已选择的数据库及它们的数据库对象的权限。点击 来打开 用户 的对象列表。对象列表窗格显示全部存在于服务器中的用户。