Java Spring rest-方法级别上的自定义标头验证

Java Spring rest-方法级别上的自定义标头验证,java,spring,spring-mvc,spring-security,Java,Spring,Spring Mvc,Spring Security,我正在研究基于spring的rest服务,并寻找wy来验证某些方法的定制请求头,而不是其他方法。 你能告诉我实现这一目标的最佳方法是什么吗?是否可以通过自定义注释等方式实现此目标 @RequestMapping(value = "/url", method = RequestMethod.GET) @ResponseBody @validateHeader(name=headerName) <--?? public DTO method() { ... r

我正在研究基于spring的rest服务,并寻找wy来验证某些方法的定制请求头,而不是其他方法。 你能告诉我实现这一目标的最佳方法是什么吗?是否可以通过自定义注释等方式实现此目标

@RequestMapping(value = "/url", method = RequestMethod.GET)
@ResponseBody
@validateHeader(name=headerName)  <--??
public DTO method() {
        ...
        return DTO;
}
@RequestMapping(value=“/url”,method=RequestMethod.GET)
@应答器

@validateHeader(name=headerName)您的问题有点不清楚。如果您希望处理程序方法只处理包含特定头的请求,那么也可以使用

RequestMapping
有一个属性,您可以在其中指定

映射请求的标头,缩小了主映射范围

像这样使用它

@RequestMapping(value = "/url", method = RequestMethod.GET, headers = {"my-header"})
您还可以指定每个头都有一个特定的值(来自javadoc)


javadoc非常具有描述性,您还可以指定是否希望处理程序处理不包含特定头的请求。查看javadoc。

标题验证是什么意思?您是指授权吗?如果是这样,我建议使用spring安全性。我指的是请求头,例如“Auth Token”。这不是授权过程的一部分。假设我想确保,例如,在某些指定方法之前(而不是在所有方法之前),它存在且不为null。是否可以从上述方法调用返回自定义运行时异常,以让用户知道缺少特定标头?@ppacxnet不适用于此解决方案。考虑一下<代码> RequestHeaderMethodArgumentResolver < /COD>如何工作,编写和注册自己的代码。
@RequestMapping(value = "/something", headers = "content-type=text")