【发布时间】:2014-11-21 15:25:36
【问题描述】:
我刚刚偶然发现了功能标记的概念,以及一个名为Togglz 的流行开源Java 库,引用了Martin Fowler 的一篇博文:
基本的想法是有一个配置文件,它为你有待处理的各种功能定义了一堆切换。然后,正在运行的应用程序使用这些切换来决定是否显示新功能。
但对我来说,这听起来真的很像授权:用户是否有权查看此内容?
例如,用户是否应该能够看到 FizzBuzz 菜单?
在 Togglz 中,我可能会像这样实现此检查:
if(MyFeatures.ShowFizzBuzz.isActive()) {
// Show the FizzBuzz menu.
}
在 Apache Shiro 中,我可以做同样的事情:
ShowFizzBuzzPermission showFizzBuzz = new ShowFizzBuzzPermission();
if(currentUser.isPermitted(showFizzBuzz) {
// Show the FizzBuzz menu.
}
同样,功能标记只是感觉就像它与角色或权限检查完全相同的问题。
我确定我错了,但我不明白怎么做。所以我问:功能标记与授权和角色/权限检查有何不同,哪些类型的具体用例体现了这种差异?换句话说:什么时候应该使用授权/角色/权限检查,什么时候应该使用功能标志?
【问题讨论】:
标签: java security authorization featuretoggle togglz