如何保护我在Play框架中创建的Restful api

时间:2011-12-31 16:26:27

标签: authentication rest playframework

我想将用户身份验证添加到我使用基于Java的Play创建的restful api中!框架。

我目前使用“安全模块”保护基于Web(浏览器访问)的应用程序详情:http://www.playframework.org/documentation/1.1/secure

当通过http请求直接调用restful api时,我可以使用相同的模块进行身份验证吗?

如果没有,我将非常感谢教程/模块的一些指针,用于集成另一个auth方法(希望能够应用于浏览器和http api访问的Web应用程序访问)。

PS如果可能的话,尽量避免使用HTTPS和摘要。

1 个答案:

答案 0 :(得分:1)

如果您已经在使用用户名/密码机制,那么为API调用添加http基本身份验证应该不难。您可以创建一个类似于:

的拦截器
public class ApiInterceptor extends Controller 
{
    @Before
    static void checkAccess() {
         if ( request.user == null || request.password == null) {
             unauthorized();
         }

         boolean canAccess = .... ;// check user and password here 
         if ( !canAccess ) {
             unauthorized();
         }
    }
 }

但这意味着您需要使用SSL,因为用户名和密码以明文形式通过http。