首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对Spring控制器使用的JSON消息进行签名?

如何对Spring控制器使用的JSON消息进行签名?
EN

Stack Overflow用户
提问于 2016-01-18 07:54:03
回答 1查看 2.1K关注 0票数 2

我有一个Spring应用程序,它接受JSON消息,编写如下

代码语言:javascript
复制
 @RequestMapping(value = "/myhook", method = RequestMethod.POST, 
     produces = JSON, consumes = JSON)
  public @ResponseBody MyResponse doIt
     (@Valid @RequestBody(required = true) MyContractRequest request) {
      MyResponse response;
      ...
      return response;
  }

这是非常好的工作,几乎没有代码支持,但现在我有一个要求签署响应和请求。

我从简单地计算Java级别上所有消息字段的共享签名开始,并将其分配给专用签名字段。但是,这需要拥有和维护用于计算签名的代码:

代码语言:javascript
复制
   public void update(java.security.Signature sign) throws Exception {
    sign.update(name);
    sign.update(value);
    sign.update(etc);
  }

我周围的一些人认为,需要编写和维护这个签名代码可能不是最好的设计,最好将整个消息签名为一个JSON字符串。我可以手动获取请求为字符串,然后手动处理JSON,但我确实希望保留Spring控制器的概念。

另外,我不能再在消息本身中有签名字段了,因为这个字段的值显然也改变了JSON字符串的签名。

是否有任何方法计算消息离开和到达时整个JSON消息体的签名,以及将签名放在哪里以便与消息一起传递?其中一个想法是使用自定义HTTP报头进行签名。无论如何,如何先计算它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-18 09:23:31

您可以使用Spring的servlet过滤器,也可以在请求和响应中修改内容

例子:

http://www.mkyong.com/spring-mvc/how-to-register-a-servlet-filter-in-spring-mvc/

或者您可以使用Spring3MVC拦截器http://viralpatel.net/blogs/spring-mvc-interceptor-example/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34849655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档