美文网首页
利用SpringMvc的validtor进行数据签名验证

利用SpringMvc的validtor进行数据签名验证

作者: LoWang | 来源:发表于2017-02-24 14:22 被阅读0次

在写SpringMvc项目中,可以在参数中添加@Valid注解进行数据的校验,当然里面的检验是一些比较简单的校验,也可以自定义校验。

在app与后端交互时,除了使用https保证数据在传输中的安全性,同时还需要对数据进行签名,保证数据来源的合法性。App和后端定义了一套相同的加密方式,后端以同样的方式对数据进行签名,验证签名值是否相等。每个接口不能单独去调用一次校验方法,对代码侵入性比较大, 所以可以使用validtor进行处理。

  • BaseRestController
/**
 * rest控制器基类.提供数据校验
 * @author Wang.ch
 *
 */
public class BaseRestController {
    protected Logger log = LoggerFactory.getLogger(BaseRestController.class);
    @Autowired
    private HMacUtil hmacutil;

    @InitBinder
    public void initBinder(WebDataBinder webDataBinder) {
        webDataBinder.addValidators(new BaseRequestValidtor());
    }

    class BaseRequestValidtor implements Validator {
        @Override
        public boolean supports(Class<?> clazz) {
            return BaseRequest.class.isAssignableFrom(clazz);
        }

        @Override
        public void validate(Object target, Errors errors) {
            BaseRequest<?> req = (BaseRequest<?>) target;
            if (!errors.hasErrors()) {
                if (!hmacutil.isAppKeyExist(req.getAppkey())) {
                    log.warn("a client attemp to use not exist appkey:{} to access", req.getAppkey());
                    errors.rejectValue("appkey", "appkey", "appkey不存在");
                    return;
                }
                //进行sign字段校验.
                if (!hmacutil.checkRequest(req)) {
                    errors.rejectValue("sign", "sign", "sign不合法");
                    return;
                }
            }
        }
    }
}

相关文章

  • 利用SpringMvc的validtor进行数据签名验证

    在写SpringMvc项目中,可以在参数中添加@Valid注解进行数据的校验,当然里面的检验是一些比较简单的校验,...

  • 6-数字签名

    数字签名 数字签名算法用于验证数据完整性、认证数据来源及抗否认服务。数字签名算法包含签名和验证两项操作,用私钥进行...

  • 数字化契约如何守护?解析聚合签名的妙用

    海量数字签名数据如何进行高效存储和验证?能否对来自多个参与方的签名实现数据聚合压缩?如果每个参与方使用不同的签名私...

  • dnssec流程精读

    用途 1、数据来源验证2、数据完整性保护 DNSSEC 并非对 DNS 查询和响应本身进行加密签名,而是由数据所有...

  • SpringMVC使用@Valid注解进行数据验证

    我们在做Form表单提交的时候,只在前端做数据校验是不够安全的,所以有时候我们需要在后端同样做数据的校验。好在Sp...

  • 信息摘要与数字签名,数字证书

    数字签名的过程如下图所示(发送者使用自己的私钥对摘要签名,接收者利用发送者的公钥对接收到的摘要进行验证) 常见的摘...

  • MOAC墨客技术科普

    墨客区块链(MOAC BlockChain) 数据签名及验证, 2019.3.18

  • SpringMVC(七)数据验证

    SpringMVC介绍之Validation 对于任何一个应用而言在客户端做的数据有效性验证都不是安全有效的,这时...

  • 关于springMVC 接口测试

    此文是基于 springmvc 最简配置-处理json数据 基础上进行测试的,springMVC 可以直接将数据封...

  • SpringMVC表单验证器

    本章讲解SpringMVC中怎么通过注解对表单参数进行验证。 SpringBoot配置 使用springboot,...

网友评论

      本文标题:利用SpringMvc的validtor进行数据签名验证

      本文链接:https://www.haomeiwen.com/subject/lwrwwttx.html