如何强制只有登录用户可以调用REST API调用?

时间:2017-04-22 12:02:36

标签: java rest spring-mvc web

我使用的是具有弹簧安全性的spring-mvc。为了安全起见,我使用请求头中的JWT令牌来验证客户端的真实性。

我必须公开一个API,允许用户发送“关注”请求。

我目前的API如下所示

@RequestMapping(value = "/api/follow/{userProfileId}" ,method=POST)
    public ResponseEntity<Integer> follow(@PathVariable("userProfileId")
    Long  userProfileId , @RequestBody IdWrapper idWrapper) {

        //userProfileId , user to whom request is being sent
        //IdWrapper contains the ID of the user who is sending the 
        //follow request
        System.out.println("sending interest to "+userProfileId);

        //business logic 
        return new ResponseEntity<Integer>(0,HttpStatus.OK);;
    }

到目前为止一切都那么好,但是如果某个客户端发现api-url并使用其他id作为IdWrapper构建API调用,而不是他自己的Id。这意味着用户1可以代表用户2向用户3发送跟随请求。

我认为REST的本质是无状态,但如何在不跟踪状态的情况下解决这个问题呢?如何在REST中解决这些问题?

0 个答案:

没有答案