经过身份验证的用户的角色是什么 - Java
What is the authenticated uesr's role - Java
早上好
我在 weblogic 10 上使用 ejb2(较旧的应用程序)。
我的会话 bean 中有一些方法可以安全地由特定角色执行。
我用
注释的每个 ejb 接口方法
`@ejb.permission role-name="role1, role2"`
由于某些方法可能由几个不同角色的用户执行,我如何知道哪个角色运行该方法?
我知道如何知道 "caller is in a certain role"
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>`
谁能帮帮我,指引我正确的思路?
只需使用if (ctx.isCallerInRole("role2")) {
根据 Oracle Accessing an Enterprise Bean Caller’s Security Context,
这是检查用户角色的唯一方法。
早上好 我在 weblogic 10 上使用 ejb2(较旧的应用程序)。
我的会话 bean 中有一些方法可以安全地由特定角色执行。
我用
`@ejb.permission role-name="role1, role2"`
由于某些方法可能由几个不同角色的用户执行,我如何知道哪个角色运行该方法?
我知道如何知道 "caller is in a certain role"
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>`
谁能帮帮我,指引我正确的思路?
只需使用if (ctx.isCallerInRole("role2")) {
根据 Oracle Accessing an Enterprise Bean Caller’s Security Context, 这是检查用户角色的唯一方法。