Java 通过注释播放框架将信息传递给@以获得用户授权
我正在play 2.4中编写一个应用程序,在执行某个操作之前,我希望确保用户具有执行该操作的权限 我可以使用请求头中的信息检索当前用户,但是如果可以像这样传递操作名称,这将非常有用Java 通过注释播放框架将信息传递给@以获得用户授权,java,annotations,playframework-2.0,authorization,Java,Annotations,Playframework 2.0,Authorization,我正在play 2.4中编写一个应用程序,在执行某个操作之前,我希望确保用户具有执行该操作的权限 我可以使用请求头中的信息检索当前用户,但是如果可以像这样传递操作名称,这将非常有用 @With(Authorization.class , action="create_account") public static Result createAccount(){ return ok("Account created"); } 然后授权可以做这样的事情 public class Author
@With(Authorization.class , action="create_account")
public static Result createAccount(){
return ok("Account created");
}
然后授权可以做这样的事情
public class Authorization extends Action.Simple{
@Override
public F.Promise<Result> call(Http.Context context) throws Throwable{
if(action == "zoom")
throw new UnauthorizedExcption("You can't do that!");
else
return delegate.call(context);
}
公共类授权扩展操作。简单{
@凌驾
public F.Promise调用(Http.Context上下文)抛出可丢弃的{
如果(操作==“缩放”)
抛出新的未经授权的dexcption(“你不能这么做!”);
其他的
返回delegate.call(上下文);
}
因此,本质上我的问题是我需要将数据传递给授权类。有没有解决此类问题的方法?我通过在会话之间传递数据做了类似的事情。请查看以下链接!希望这有帮助!)
@With(Authorization.class)
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Auth {
String value() default "";
}
按如下方式注释控制器方法:
@Auth("create-account")
public static Result createAccount(){
return ok("Account created");
}
要从注释中检索值,请使授权
类扩展操作
:
公共类授权扩展操作{
字符串值=configuration.value();
// ...
}
public class Authorization extends Action<Auth> {
String value = configuration.value();
// ...
}