【发布时间】:2017-11-29 13:07:03
【问题描述】:
早上好 我在 weblogic 10 上使用 ejb2(旧应用程序)。
我的会话 bean 中有一些方法可以安全地由特定角色执行。
我注释的每个 ejb 接口方法
`@ejb.permission role-name="role1, role2"`
由于某些方法可能由几个不同角色的用户执行,我如何知道哪个角色运行该方法?
我知道如何知道“来电者是否处于某个角色”
Principal principal = ctx.getCallerPrincipal() ;
boolean isRole = ctx.isCallerInRole("role2") ;
但是,有没有办法获得实际调用者的角色?像“getCallerRole()”之类的?
在 xml 文件“ejb-security-roles.xml”中,我指定了应用程序域中的角色
<security-role>
<role-name>role1</role-name>
<role-name>role2</role-name>
</security-role>
然后,这些角色中的每一个都在“weblogic-security-role-assignment.xml”中映射到 LDAP
<security-role-assignment>
<role-name>role1</role-name>
<principal-name>Role1User</principal-name>
</security-role-assignment>
<security-role-assignment>
<role-name>role2</role-name>
<principal-name>Role2User</principal-name>
</security-role-assignment>`
任何人都可以提供帮助,指导我正确的思维方式吗?
【问题讨论】:
标签: java roles user-permissions