我正在用Jersey和Jackson構建REST API。我使用本教程(http://www.mkyong.com/webservices/jax-rs/json-example-with-jersey-jackson/)開始使用Jackson。在與Jackson + Jersey發送JSON響應之前生成HMAC
我想在發送之前對響應進行簽名。我怎樣才能得到將生成的JSON字符串,以便我可以簽名?
@GET
@Path("/get")
@Produces(MediaType.APPLICATION_JSON)
public Response getTrackInJSON() {
Track track = new Track();
track.setTitle("Enter Sandman");
track.setSinger("Metallica");
String HMAC = HMAC("[secret]", [track.toJson]);
return Response.status(201).entity(track).header("HMAC", HMAC).build();
}
我也想驗證一個進來的請求的簽名:
@POST
@Path("/post")
@Consumes(MediaType.APPLICATION_JSON)
public Response createTrackInJSON(Track track) {
String rawRequestBody = [how to get the raw request?];
//get header
//verify HMAC
return Response.status(201).entity(result).build();
}
所以我最大的問題是如何獲得這從一個對象產生,它將被髮送之前的原始JSON字符串?
謝謝你的答案