如何为所有控制器配置默认的@RestController URI前缀?

我知道您可以设置server.contextPathin application.properties来更改根上下文。

另外,我可以在Spring Boot的应用程序配置中添加一个附加上下文,如以下示例(在Groovy中),以便在根上下文的URL映射中添加“ / api”:

@Bean

ServletRegistrationBean dispatcherServlet() {

ServletRegistrationBean reg = new ServletRegistrationBean(new DispatcherServlet(), "/")

reg.name = "dispatcherServlet"

reg.addInitParameter("contextConfigLocation", "")

reg.addUrlMappings("/api/*")

reg.loadOnStartup = 2

reg

}

}

我正在尝试为Web服务调用专门准备一个单独的基本URI“ /

api”,我可以利用它来提高安全性,等等。但是,使用上述方法将意味着可以通过以下方式访问我的任何URI(无论是否为Web服务) “ /”或“ /

api”,并且不提供任何具体隔离。

有谁知道一种更好的方法,可以@RestController使用配置为所有人设置基本路径,而不必在每个控制器前加/ api

/前缀?如果我被迫手动为每个控制器添加URI前缀,则可能会错误地忽略该前缀并绕过我针对Web服务的安全措施。

回答:

有人在Spring MVC

Jira中提出了一个问题,并提出了一个很好的解决方案,我现在正在使用它。这个想法是在每个RestController文件中放置的前缀中使用Spring

Expression Language,并在Spring Boot application.properties文件中引用单个属性。

这是问题的链接:https :

//jira.spring.io/browse/SPR-13882

以上是 如何为所有控制器配置默认的@RestController URI前缀? 的全部内容, 来源链接: utcz.com/qa/425265.html

回到顶部