- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图使用 EJB 运行一个简单的 RBAC 示例,但是当客户端从具有 SecurityDomain 的类调用方法时,我得到: javax.ejb.EJBAccessException: JBAS013323: Invalid User。
这是我的设置:
客户端是一个简单的java项目
我稍后想要保护的服务器项目中的类如下所示:
@Stateless
public class SomeBean implements SomeRemote, SomeLocal {
@Override
public void unsecuredMethod(Object obj) {
//do something
}
}
在 META-INF 的 jboss-ejb3.xml 中,我有:
<?xml version="1.0"?>
<jboss:ejb-jar xmlns:jboss="http://www.jboss.com/xml/ns/javaee"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:s="urn:security"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss-ejb3-2_0.xsd
http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd"
version="3.1"
impl-version="2.0">
<assembly-descriptor>
<s:security>
<ejb-name>SomeBean</ejb-name>
<s:security-domain>SomeDomain</s:security-domain>
</s:security>
</assembly-descriptor>
</jboss:ejb-jar>
我使用此文件是因为我无法导入 org.jboss.ejb3.annotation.SecurityDomain 注释。 (也许我有错误的依赖项?)
在来自 jboss-as-7.1.0.Final\standalone\configuration 的standalone-full.xml中,我有:
...
<subsystem xmlns="urn:jboss:domain:security:1.1">
<security-domains>
...
<security-domain name="SomeDomain" cache-type="default">
<authentication>
<login-module code="Database" flag="required">
<module-option name="dsJndiName" value="java:/DefaultDS"/>
<module-option name="principalsQuery" value="SELECT password FROM Customer WHERE username=?"/>
<module-option name="rolesQuery" value="SELECT rolename, 'Roles' FROM Role WHERE username=?"/>
<module-option name="unauthenticatedIdentity" value="guest"/>
</login-module>
</authentication>
</security-domain>
</security-domains>
</subsystem>
...
无论我是否尝试在客户端内使用
进行身份验证,都会发生异常SecurityClient secClient =
SecurityClientFactory.getSecurityClient();
secClient.setSimple("username1", "password1");
secClient.login();
或者如果我不验证他的身份(因为:name =“unauthenticatedIdentity”value =“guest”),则只需使用客户端应该接收的访客角色。另一件事是,即使我提供了错误的凭据,来自 SecurityClient 的 LoginException 似乎也不会被抛出。之后,我对 SomeBean 类进行正常查找并将其转换为 SomeRemote。当调用 unsecuredMethod(..) 时,会发生异常。我对两者都进行了尝试,在角色表中为 guest 用户提供了角色,在角色表中没有角色。
在客户端项目中,除了使用 SecurityClient 和查找之外,我没有执行任何与 rbac 或 ejb 相关的操作,我希望这是正确的。
也许有一些很好的教程可以解释一切。我可能遇到这个问题,因为我的解决方案基于 Jboss AS 6 教程。
编辑:在互联网上搜索此异常几个小时后,我在一本书中找到了一个提示,该提示说如果jboss找不到用于身份验证的数据库表,您将始终收到消息:“无效用户”。所以我的数据源配置可能有问题。
最佳答案
如果这是远程访问的 EJB,您还需要更新与远程连接器关联的安全领域 (ApplicationRealm),以使用对安全域的 jaas 引用,以便可以在入站连接上对用户进行身份验证。
关于java - 访问安全域时出现 EJBAccessException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10788593/
我试图使用 EJB 运行一个简单的 RBAC 示例,但是当客户端从具有 SecurityDomain 的类调用方法时,我得到: javax.ejb.EJBAccessException: JBAS01
我正在尝试运行一个 jnlp 文件,该文件将一些 jar 文件下载到 jvm 缓存,并且在启动时出现以下错误: java.lang.NoClassDefFoundError: javax/ejb/EJ
我的应用程序中有一个受 EJB 安全性保护的 REST 端点。 @Path("/somepath") @Produces(MediaType.APPLICATION_JSON) @Stateless
我是一名优秀的程序员,十分优秀!