2012-08-06 155 views
3

我正在研究EJB应用程序。我必须在会话Bean(EJB3)方法上应用基于角色的安全性,为此我尝试使用下面的“@RolesAllowed”注释会话Bean方法,部署在Weblogic上的EJB基于角色的安全性

创建用户,组和角色我正在使用jazn-data。 XML如下,

的部署EJB和运行应用程序,安全性也得到应用,并抛出一个异常[EJB:010160]经过安全冲突:用户:“XXX”没有足够的权限来访问EJB

后如下所示添加weblogic ejb部署描述符,

<?xml version = '1.0' encoding = 'windows-1252'?> 
<weblogic-ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-ejb-jar http://xmlns.oracle.com/weblogic/weblogic-ejb-jar/1.1/weblogic-ejb-jar.xsd" 
        xmlns="http://xmlns.oracle.com/weblogic/weblogic-ejb-jar"> 
    <weblogic-enterprise-bean> 
     <ejb-name>ApplicationFacade</ejb-name> 
     <stateless-session-descriptor/> 
     <enable-call-by-reference>true</enable-call-by-reference> 
    </weblogic-enterprise-bean> 
    <security-role-assignment> 
     <role-name>PVUser</role-name> 
     <principal-name>pv</principal-name> 
    </security-role-assignment> 
    <security-role-assignment> 
     <role-name>PRUser</role-name> 
     <principal-name>pr</principal-name> 

    </security-role-assignment> 
</weblogic-ejb-jar> 

它按预期开始工作。

我的问题是关于weblogic ejb部署描述符(weblogic-ejb-jar.xml),我必须为每个用户(pricipal-name)创建一个条目,每次我添加一个新用户或者在那里我可以通过哪种方式映射用户组?

如果我错过了任何其他需要添加权限的配置,请告诉我。

+0

您也可以在领域中配置的角色,并与配置WebLogic:<安全角色分配> \t \t ROLENAME \t \t <外部定义/> \t pablosaraiva 2014-11-10 16:23:22

回答

1

答案是肯定的,

  • ,你需要做的是建立一个由登录名为XXX的 WebLogic控制台组什么(在安全领域面板中修改)
  • 然后将所有的用户名为XXX
  • 最后在WebLogic EJB部署描述符中的组,你只需要
    指定组名称为

<主要名称> xxxgroup名< /委托人名称>

  • 其结果是,该组内的每个成员将共享 权限。