我使用的是具有弹簧安全性的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中解决这些问题?