So che è possibile impostare il server.contextPath
in application.properties
per modificare il contesto di root.Come configurare un prefisso URI @RestController predefinito per tutti i controller?
Inoltre, posso aggiungere un contesto aggiuntivo nella configurazione dell'applicazione per la primavera di avvio, come nel seguente esempio (in Groovy) per aggiungere un "/ api" per le mappature URL del contesto root:
@Bean
ServletRegistrationBean dispatcherServlet() {
ServletRegistrationBean reg = new ServletRegistrationBean(new DispatcherServlet(), "/")
reg.name = "dispatcherServlet"
reg.addInitParameter("contextConfigLocation", "")
reg.addUrlMappings("/api/*")
reg.loadOnStartup = 2
reg
}
}
Sto cercando di avere un URI di base separato "/ api" specifico per le chiamate al servizio web, che posso sfruttare per la sicurezza, ecc. Tuttavia l'utilizzo dell'approccio precedente significa che qualsiasi mio URI, servizio web o meno, può essere raggiunto con "/" o "/ api" e non fornisce alcuna segregazione concreta.
Qualcuno è a conoscenza di un approccio migliore per impostare un percorso di base per tutti @RestController
(s) utilizzando la configurazione, senza dover formalmente prefixare ogni controller con/api /? Se sono obbligato a precedere manualmente l'URI per ciascun controller, sarebbe possibile ometterlo erroneamente e bypassare le mie misure di sicurezza specifiche per i servizi web.
Qui è un riferimento in Stack Overflow per lo stesso tipo di domanda, che non fu mai del tutto risolta:
Spring Boot: Configure a url prefix for RestControllers
Un biglietto è stato aperto su Jira per questo con un lavoro in giro: https://jira.spring.io/browse/SPR-13882 – pczeus