Playframework 2.0 门闩限制注释缺失-间隙2.1.1,门闩2.1
我刚刚注意到,Deadbolt 2.2和Deadbolt-2.1版本中都缺少Playframework 2.0 门闩限制注释缺失-间隙2.1.1,门闩2.1,playframework-2.0,playframework-2.1,scala-template,deadbolt,Playframework 2.0,Playframework 2.1,Scala Template,Deadbolt,我刚刚注意到,Deadbolt 2.2和Deadbolt-2.1版本中都缺少@Restrictions注释。 在示例和文档中,将对其进行解释() 在这里它存在(DB-2.1.x): 在这里,它不是: 锁紧螺栓2.1: 硕士(2.2): 它丢失有什么原因吗?我如何完成角色分组?使用或不使用注释,只需编写自己的动态处理程序,还是有更好的方法 感谢您提前回复 我不知道为什么它不见了,但我认为使用定制的钱德勒更干净。动态注释更短,因为不需要在每个注释中键入角色名称 使用@Restrictions注释时,
@Restrictions
注释。
在示例和文档中,将对其进行解释()
在这里它存在(DB-2.1.x):
在这里,它不是:
锁紧螺栓2.1:
硕士(2.2):
它丢失有什么原因吗?我如何完成角色分组?使用或不使用注释,只需编写自己的动态处理程序,还是有更好的方法
感谢您提前回复 我不知道为什么它不见了,但我认为使用定制的钱德勒更干净。动态注释更短,因为不需要在每个注释中键入角色名称 使用@Restrictions注释时,它将如下所示:
@Restrictions({@And("foo"),@And("bar"), @And("more_roles"})
@Dynamic("custom_restriction")
使用动态处理程序,它看起来如下所示:
@Restrictions({@And("foo"),@And("bar"), @And("more_roles"})
@Dynamic("custom_restriction")
动态处理程序中的代码:
static {
HANDLERS.put("custom_restriction", new AbstractDynamicResourceHandler() {
public boolean isAllowed(String name, String meta, DeadboltHandler deadboltHandler, Http.Context context) {
Subject subject = deadboltHandler.getSubject(context);
boolean allowed = false;
if (DeadboltAnalyzer.hasRole(subject, "foo") || DeadboltAnalyzer.hasRole(subject, "bar") || DeadboltAnalyzer.hasRole(subject, "more_roles")) {
allowed = true;
}
return allowed;
}
});
}
我不知道为什么它不见了,但我认为使用定制的钱德勒更干净。动态注释更短,因为不需要在每个注释中键入角色名称 使用@Restrictions注释时,它将如下所示:
@Restrictions({@And("foo"),@And("bar"), @And("more_roles"})
@Dynamic("custom_restriction")
使用动态处理程序,它看起来如下所示:
@Restrictions({@And("foo"),@And("bar"), @And("more_roles"})
@Dynamic("custom_restriction")
动态处理程序中的代码:
static {
HANDLERS.put("custom_restriction", new AbstractDynamicResourceHandler() {
public boolean isAllowed(String name, String meta, DeadboltHandler deadboltHandler, Http.Context context) {
Subject subject = deadboltHandler.getSubject(context);
boolean allowed = false;
if (DeadboltAnalyzer.hasRole(subject, "foo") || DeadboltAnalyzer.hasRole(subject, "bar") || DeadboltAnalyzer.hasRole(subject, "more_roles")) {
allowed = true;
}
return allowed;
}
});
}
我也注意到了这一点,并查看了一些来源。看起来
@Restrict
和@Restrict
注释都被替换为仅@Restrict
。从当前@Restrict
代码的注释中:
在{@Group}中,角色是and,在{@Group}之间,角色组是OR。例如,@Restrict({@Group(“foo”),@Group(“hurdy”,“gurdy”)})表示@Subject必须具有foo角色或hurdy和gurdy角色
因此,看起来您也可以将一个@Restrict
注释与新的@Group
注释结合使用
我也注意到了这一点,并查看了一些源代码。看起来
@Restrict
和@Restrict
注释都被替换为仅@Restrict
。从当前@Restrict
代码的注释中:
在{@Group}中,角色是and,在{@Group}之间,角色组是OR。例如,@Restrict({@Group(“foo”),@Group(“hurdy”,“gurdy”)意味着@Subject必须具有foo角色或同时具有hurdy和gurdy角色
因此,看起来您也可以将一个@Restrict
注释与新的@Group
注释结合使用