小编pcz*_*eus的帖子

如何为所有控制器配置默认的@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
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试为Web服务调用提供一个单独的基本URI"/ api",我可以利用它来保证安全性等.但是使用上述方法将意味着可以通过以下方式访问我的任何URI,无论是否使用Web服务"/"或"/ api",并没有提供具体的隔离.

是否有人知道@RestController使用配置为所有(s)设置基本路径的更好方法,而不必使用/ api /正式为每个控制器添加前缀?如果我被迫手动为每个控制器的URI添加前缀,则可能会错误地省略它并绕过我特定于Web服务的安全措施.

这是Stack Overflow中对同一类型问题的引用,该问题从未得到完全回答:

Spring Boot:为RestControllers配置url前缀

java groovy spring-mvc spring-boot

12
推荐指数
4
解决办法
1万
查看次数

Spring MVC Path匹配忽略双斜杠//

在Spring Boot应用程序中,我已经设置了一个带有url映射的过滤器/service1/*.这是使用a完成的FilterRegistrationBean.

还有一个映射到相同模式的控制器:

   @RestController @RequestMapping(path = "/service1")
   class Service1 {
   ...
Run Code Online (Sandbox Code Playgroud)

问题:

执行POST http://localhost:8080/service1/hello按预期工作(即,过滤器涉及请求处理链,并且调用了服务控制器).但是,执行http://localhost:8080//service1/hello(注意双斜杠)将绕过过滤器,但由于Spring MVC更宽松的路径匹配算法,无论如何都会到达控制器.

我已经读过可以自定义控制器路径匹配算法(链接:http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc-config-path-matching),但是我没有找到不忽略双斜杠的选项.

同样重要的是:这种行为意味着可以绕过任何受过滤器保护的Controller(不是Spring安全性,但任何自定义过滤器),只需在URL的任何部分放置一个双斜杠即可.我的理解是否正确?你知道MVC控制器路径匹配是否可以调整,以便在路径匹配算法中不会忽略双斜杠?

java spring spring-mvc url-mapping spring-boot

10
推荐指数
1
解决办法
2465
查看次数

是否可以将包中的所有类注册为Spring bean

我熟悉基于Springs Java的配置选项,包括注册Spring bean的注释的使用@Component@Configuration结合@Bean注释.

但是,在将一个体面的大小项目转换为Spring时,系统地触摸项目中的所有类并使用@Configuration @Beans进行更新或使用其对每个类进行注释可能会非常耗费人力@Component.我们有一个很大的Groovy项目要转换,我想简化这个过程.

我的问题: Spring中是否提供了一个工具,允许您告诉Spring在特定包中自动配置所有有效的bean候选类?

如果没有,还有哪些其他选择?

java groovy spring dependency-injection spring-boot

6
推荐指数
2
解决办法
1831
查看次数