我正在开发一个 EJB 应用程序。我必须在会话 bean(EJB3)方法上应用基于角色的安全性,为此我尝试使用“@RolesAllowed”注释会话 bean 方法,如下所示,
为了创建用户、组和角色,我使用如下 jazn-data.xml,
部署 EJB 并运行应用程序后,确实应用了安全性并引发异常 [EJB:010160]Security Violation: User: 'XXX' has enough permission to access 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)有关,每次添加新用户时,我是否必须为每个用户(主名)输入一个条目,或者是否有办法我可以映射一个用户组?
如果我错过了添加权限所需的任何其他配置,也请告诉我。