如何在Spring MVC上使方法禁止直接请求但允许服务器请求?

时间:2018-08-05 17:52:39

标签: spring-mvc spring-boot

我基本上想知道的是:

假设我有一个用@RequestMapping注释并且值为“ / test / ajax”的方法。我可以使该特定方法只能由内部调用访问,而不能由客户端访问吗?如果我从服务器内部对该URL运行ajax请求,它应该可以正常工作,但是如果我直接从浏览器中运行,它应该返回403。

这有可能吗?

1 个答案:

答案 0 :(得分:0)

例如在控制器层上添加spring注释@CrossOrigin 另外,请按照给定的链接https://spring.io/blog/2015/06/08/cors-support-in-spring-framework

@CrossOrigin
@RestController
@RequestMapping("/account")
public class AccountController {


    @GetMapping("/{id}")
    public Account retrieve(@PathVariable Long id) {
        // ...
    }

    @DeleteMapping("/{id}")
    public void remove(@PathVariable Long id) {
        // ...
    }
}

如果只允许这样的方法传递

@RestController
@RequestMapping("/account")
public class AccountController {

    @CrossOrigin
    @GetMapping("/{id}")
    public Account retrieve(@PathVariable Long id) {
        // ...
    }

    @DeleteMapping("/{id}")
    public void remove(@PathVariable Long id) {
        // ...
    }
}