在我们的项目中,我们有用于公司内部网络的 JSF2 页面。但是我们将把这些页面打开到互联网上。因此,每个人都可以使用页面。但是如果用户来自 Internet,则某些字段将不会呈现。
我知道可以为每个组件编写一个渲染属性,例如“userIsInRole”。但是额外的“渲染”控件似乎不是一种高效且优雅的方法。所以我打算通过使用自定义属性来标记将要在线呈现的组件,如下所示:
<h:inputText context="internet" />
...
在 inputText 或组件代码的渲染器中:
if(user is from Internet && context = "internet") {
return true; // or render... whatever
}
如果组件未标记为 Internet,则意味着它只能在公司内部使用(渲染)。
是否可以根据给定属性使用 JSF2 组件来实现授权?有没有更好的选择?或者我应该为互联网用户设计单独的页面?
我们在项目中使用:PrimeFaces + Spring。
谢谢