我正在将 Oracle ADF 与 JDeveloper 11g 第 1 版一起使用,我很想为各个组配置应用程序角色。让我解释一下,我有以下情况,我正在寻找一些想法:我想启用提交(RichCommandButton)Enterprise only 某些角色,我该怎么办?我决定在页面的 BackingBean get 方法中做一个 if 语句,对吗?进行的正确方法是什么?
3 回答
检查角色以确定是否允许某个操作是可以的,但可能会导致您的应用程序对特定角色具有硬编码的依赖关系。如果您决定将来添加角色怎么办?
更好的方法是检查权限并为角色提供权限。这样,您的策略就不会与特定角色绑定。但是,这种方法要复杂得多,因为您需要一种向角色授予权限的方法。
{securityContext.userInRole ['角色列表']}
#{securityContext.userInAllRoles ['角色列表']}
来自文档: http ://docs.oracle.com/cd/E16162_01/web.1112/e16182/adding_security.htm 和 http://adfcodebits.blogspot.com/2010/04/bit-12-accessing-authenticated-用户.html
实际上检查应用程序角色是可以的,因为它是应用程序中的抽象。但是,我同意权限(您可以创建自定义 ResourcePermission)是一种更好的方法,因为它允许您稍后将提交操作授予其他角色(请记住,企业管理器是 ADF 的管理工具,它还允许更改安全授权)。
显然您是 ADF 和 ADF Security 的新手,因此请观看以下视频录制,我在其中对 ADF Security 进行了端到端的解释
http://download.oracle.com/otn_hosted_doc/jdeveloper/11gdemos/AdfSecurity/AdfSecurity.html
另一个有用的资源是
http://www.oracle.com/technetwork/issue-archive/2012/12-jan/o12adf-1364748.html
它总结了 ADF 安全性(包括前面提到的 ResourcePermission)并允许您下载示例应用程序以查看和复制)
坦率