如何在Spring中重写请求URI和路径变量?

时间:2016-03-18 01:18:42

标签: java spring spring-mvc

我现在正在使用Spring 4,我有一个控制器定义了这样的:

@RequestMapping(value = "/{id}/definitions", method = RequestMethod.PUT)
@ResponseBody
public List<ResponseDTO> update(@PathVariable(value = "id") String id,
                                HttpServletRequest iRequest) throws Exception 
{ ... }

我希望收到一个加密的'id'字符串作为请求本身的路径变量的一部分。但我需要做的是重新编写此请求URI并将其解密为另一个值(例如,一个整数),并使用原始URI形成另一个HTTP请求,仅使用转换/解密的值。

如何获取整个URI并将{id}替换为整数?

例如,如果原始请求如下:

http://mycompany.com/my-service/kjAISOhalkjZjakmbbb/definitions

我想在上下文路径之后转换所有内容:

/kjAISOhalkjZjakmbbb/definitions

为:

/123456/definitions 

最后,我可以向另一个看起来像这样的服务形成一个请求:

http://mycompany.com/my-service-2/123456/definitions

谢谢!

1 个答案:

答案 0 :(得分:0)

解密值(不过你这样做)。 然后只需使用重定向或前进(在您的情况下可能是前进):

gsNumber