你可能想使用某种形式的传输层安全性,如SSL,以确保您的服务。
此外,REST会尝试使用HTTP功能,因此您可以在HTTP请求中放置授权标头。
编辑:一个简单的例子
传输层安全
转到出售SSL证书,例如威瑞信的众多公司之一。购买证书。将其安装在您的Web服务器上。你的网络服务器将有如何安装它的文档。
使用HTTP授权
让您的Web服务的客户端使用基本授权(它们被传递明文,所以你一定要使用SSL这是有效的)。这涉及将BASE64编码的用户名和密码放入Authorisation header。编写安全Filter
并配置您的Web应用程序,以通过过滤器将所有请求传递到您的RESTful服务。您的安全过滤器应从请求授权标头中提取用户名和密码并检查它们。如果凭证无效,则用403状态码拒绝该请求。如果凭证正常,只需传播过滤器链。
public MySecurityFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {
//Get the Authorizatiuon header
String auth = ((HttpServletRequest)request).getHeader("Authorization");
//Extract the username and password
if (checkCredentialsOnMyDatabase(credentials[0], credentials[1])) {
chain.doFilter(request, response);
} else {
//Reject the request with status code 403
}
}
}
还要注意的是,如果你使用的是像新泽西流行的框架之一,那么它有很多的安全功能内置,可以帮助你。
作为一个经验法则,发送,可以多次使用了未加密的连接密码不被认为是安全的。 – biziclop 2011-05-10 16:15:19
GAE支持HTTPS - http://googleappengine.blogspot.com/2008/10/announcing-https-support-for-appspotcom.html – 2011-05-10 21:44:04