《Java Restful Web Services实战》第2印修正
提交人:LiYanCode
- 38页图2-5输入地址应该是"localhost:8080/",不是"localhost:8080/simple-service-webapp"
- 83页 3.2.3节前补充:
注解QueryParam可以和注解DefaultValue一起使用。注解DefaultValue的作用是预置一个默认值,当请求中不包含此参数时使用。示例如下:
@DefaultValue("100") @QueryParam("size") final Integer pageSize
这句话的意思是当请求中不包含分页参数pageSize时,分页参数pageSize的默认值为100。
- 98页最后补充:
如果REST应用处于多语言环境中,不要忘记统一开放接口的字符编码;如果统一开放接口同时供前端jsonp使用,不要忘记添加相关媒体类型。示例如下:
@Produces({"application/x-javascript;charset=UTF-8", "application/json;charset=UTF-8"})
在这段代码中,REST API将支持jsonp、json,并且统一字符编码为UTF-8。
156页第二段:
简而言之,实现安全的过程就是系统实现AAA的过程。AAA是指认证(Authentication)、授权(Authorization)和账户(Accounting)。
- 156页第二段替换为下文:
REST的特点是无状态的,因此基本的安全手段就是应用系统实现AAA的过程,这个主题将是本章的核心。在讲述AAA之前,我想到了一位业内朋友的反馈:既然使用REST就是追求总体开发的简单,搞起AAA太麻烦。经过探讨我们总结了如下方案:在客户端和服务器端同时使用时间令牌(或者类似的技术),每次请求使用令牌、用户名、密码、IP(这个元素对于内网中的多台主机不起作用)、请求URL等作为加密元素,服务器端接收请求后首先解密验证这些元素,再处理具体业务。安全信息可以考虑写入HTTP HEAD。当然,这并不是一个完美的安全方案,但这个极简的实现比本章要讲述的更安全的证书认证的门槛低很多、比HTTP基本认证又安全很多。这里只想为读者抛砖,希望诸位因地制宜地采用更恰当的安全保护手段。书归正传,我们走进AAA的世界。AAA是指认证(Authentication)、授权(Authorization)和计费(Accounting)。