Play Framework句柄授权不认证

Sia*_*osh 5 authentication authorization playframework playframework-2.2

我正在使用Play Framework 2.2和Java开发应用程序我已经实现了身份验证模块,就像下面的教程 http://www.playframework.com/documentation/2.1.0/JavaGuide4

简而言之,实施了一个安全类

    public class Secured extends Security.Authenticator{

            @Override
            public String getUsername(Context ctx) {
               return ctx.session().get("email");
           }

           @Override
            public Result onUnauthorized(Context ctx) {
               return redirect(routes.Users.login());
           }
     }
Run Code Online (Sandbox Code Playgroud)

然后在控制器中我将这一行添加到控制器的方法中

     @Security.Authenticated(Secured.class)
     public static Result methodOfController(){

          //some codes here

    return ok( someView.render());
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的那样,它只是身份验证而非授权,例如,它会检查用户是否已登录,但从不检查这是否是管理员的电子邮件

我的问题是:我应该如何为这些类添加访问权限,或者如何为此身份验证添加授权

请给我一个描述性答案,说明我应该对这个类,控制器甚至项目的其他部分(可能是模型)进行哪些修改以获得适当的授权

请不要提供网站或网络日志的链接,除非他们专注于一个非常类似的问题

Jas*_*son 3

您可以查看像Deadbolt这样提供解决方案的解决方案,或者您也可以推出自己的解决方案。Java 的主要思想是使用Action 组合来创建自定义动作注释。因此,您可以检查用户是否经过身份验证,然后检查该用户是否有权使用所请求的资源。