相关疑难解决方法(0)

如何为所有控制器配置默认的@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 Data Rest:如何在HAL浏览器中公开自定义rest控制器方法

我已经创建了一个自定义的休息控制器,我可以访问API并从资源中获取结果,问题是,它没有出现在HAL浏览器中.如何在HAL浏览器中公开这个自定义方法?谢谢...

@RepositoryRestController
public class RevisionController {

    protected static final Logger LOG = LoggerFactory
            .getLogger(RevisionController.class);

    private final DisciplineRepository repository;

    Function<Revision<Integer, Discipline>, Discipline> functionDiscipline = new Function<Revision<Integer, Discipline>, Discipline>() {
        @Override
        public Discipline apply(Revision<Integer, Discipline> input) {
            return (Discipline) input.getEntity();
        }
    };

    @Inject
    public RevisionController(DisciplineRepository repository) {
        this.repository = repository;
    }

    @RequestMapping(method = RequestMethod.GET, value = "/disciplines/search/{id}/revisions")
    public @ResponseBody ResponseEntity<?> getRevisions(
            @PathVariable("id") Integer id) {

        Revisions<Integer, Discipline> revisions = repository.findRevisions(id);

        List<Discipline> disciplines = Lists.transform(revisions.getContent(),
                functionDiscipline);

        Resources<Discipline> resources = new Resources<Discipline>(disciplines);

        resources.add(linkTo(
                methodOn(RevisionController.class).getRevisions(id)) …
Run Code Online (Sandbox Code Playgroud)

spring spring-data-rest

5
推荐指数
1
解决办法
2908
查看次数