如何在所有Spring Web RestController equest上强制执行请求标头

时间:2018-06-20 09:58:28

标签: spring-boot spring-restcontroller spring-web

是否可以在Spring Web RestController中指定一次请求标头,而不是对每个请求都执行一次?

e.q。

@RestController("workflowController")
public class MyClass{

public Value list(@RequestHeader(USER_ID_HEADER_PARAM) String user) {
    ...some code
}

public Workflow create(@RequestBody Workflow workflow, @RequestHeader(USER_ID_HEADER_PARAM) String user) {
    ... some code
}

}

@RequestHeader(USER_ID_HEADER_PARAM)将在每个请求中重复。 有没有办法在@RestCotroller级别或班级级别对其进行分类?

谢谢

1 个答案:

答案 0 :(得分:0)

使用某种过滤器类,可以将其配置为根据URL路径在servlet中包裹您的请求。

以下是有关通用Servlet API过滤器API的信息: https://www.oracle.com/technetwork/java/filters-137243.html

如果您使用的是Spring,则还有另一种方法:

https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#filters

https://www.baeldung.com/intercepting-filter-pattern-in-java