当前位置: 首页 > 知识库问答 >
问题:

Wildfly(12/14)Elytron-LDAP安全性-缺少依赖项

黄景胜
2023-03-14

我正在努力将Wildfly 12/14 Elytron Ldap身份验证机制引入到我的两个webapps应用程序中。

虽然我已经通过jboss-cli.sh按照Wildfly文档中的步骤成功地部署了DirContext、LdapRealm、SecurityDomain等,但是当我在“web-inf/jboss-web.xml”中添加标记 并启动容器时,我会得到以下错误:

    "WFLYCTL0412: Required services that are not installed:" => ["jboss.security.security-domain.myApplicationDomain"],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => ["jboss.deployment.unit.\"ldapauthentication.war\".component.MemberRegistration.CREATE is missing [jboss.security.security-domain.myApplicationDomain]"]

注意:即使将“standalone.xml”日志级别设置为TRACE,关于这一点的唯一信息也是上面的行。

用于实现Elytron安全子系统的jboss-cli.sh顺序命令包括:

/subsystem=elytron/dir-context=exampleDC:add(url="ldap://172.17.0.2:389",principal="cn=admin,dc=wildfly,dc=org",credential-reference={clear-text="secret"})
/subsystem=elytron/ldap-realm=exampleLR:add(dir-context=exampleDC,identity-mapping={search-base-dn="ou=Users,dc=wildfly,dc=org",rdn-identifier="uid",user-password-mapper={from="userPassword"},attribute-mapping=[{filter-base-dn="ou=Roles,dc=wildfly,dc=org",filter="(&(objectClass=groupOfNames)(member={1}))",from="cn",to="Roles"}]})
/subsystem=elytron/simple-role-decoder=from-roles-attribute:add(attribute=Roles)
/subsystem=elytron/security-domain=exampleLdapSD:add(realms=[{realm=exampleLR,role-decoder=from-roles-attribute}],default-realm=exampleLR,permission-mapper=default-permission-mapper)
/subsystem=elytron/http-authentication-factory=example-ldap-http-auth:add(http-server-mechanism-factory=global,security-domain=exampleLdapSD,mechanism-configurations=[{mechanism-name=BASIC,mechanism-realm-configurations=[{realm-name=myApplicationDomain}]}])
/subsystem=undertow/application-security-domain=myApplicationDomain:add(http-authentication-factory=example-ldap-http-auth)

jboss-web.xmlweb.xml文件定义如下:

jboss-web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web xmlns="http://www.jboss.com/xml/ns/javaee"
  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-web_5_1.xsd">

    <security-domain>myApplicationDomain</security-domain>

</jboss-web>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee"
    xmlns:web="http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee">

    <display-name>ldapauth</display-name>

    <security-constraint>
        <web-resource-collection>
            <web-resource-name>secure</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>Admin</role-name>
        </auth-constraint>
    </security-constraint>

    <security-role>
        <description>Ldap Secured</description>
        <role-name>Admin</role-name>
    </security-role>

    <login-config>
        <auth-method>BASIC</auth-method>
        <realm-name>myApplicationDomain</realm-name>
    </login-config>

    <session-config>
        <session-timeout>8</session-timeout>
    </session-config>

    <welcome-file-list>
        <welcome-file>/index.html</welcome-file>
    </welcome-file-list>
</web-app>

共有1个答案

薛保臣
2023-03-14

Component.MemberRegistration.Create(EJB?)正在使用旧的安全域jboss.security.security-domain.MyApplicationDomain。

您应该在ejb子系统中使用define application security domain(与您在undertow中所做的类似)来了解应该使用Elytron domain。

/subsystem=EJB3/application-security-domain=myapplicationdomain:add(security-domain=exampleldapsd)

 类似资料:
  • 在哪里可以找到repo以下载下面列出的缺失依赖项。我尝试了以下存储库,但找不到这些依赖项。 我的存储库是:

  • 我用的是野蝇10号。起初,我试图通过CLI创建数据源。 一个命令得到了很好的执行。显示驱动程序已安装 连接测试 现在我尝试使用创建数据源 我的 中的“datasources”部分 现在在部署的时候我看到这样的消息 WFlyCTL0184:新的丢失/未满足的依赖项:service jboss.jdbc-driver.mysql(丢失)依赖项:[service jboss.driver-demande

  • 我试图更加熟悉Wildfly的安全配置,但在理解standalone.xml等服务器端配置和web.xml和jboss-web.xml等应用程序端配置中的选项之间的关系时遇到了一些问题。 我对这个基于Wildfly servlet安全示例的配置有几个问题。我已经尝试了,它的工作,但有几件事对我来说不清楚。 null web.xml jboss-web.xml 这里有一个Wildfly示例的链接,我

  • 我正在尝试将Jeddict插件安装到Apache Netbeans版本12中。我遵循了手动安装和通过更新中心安装的说明:Jeddict安装说明 这两种方法都失败,并显示以下消息: 有些插件需要安装plugin Maven项目。插件Maven Projects是在实现版本12.0中请求的-631BD69CD6112B1CC4C892C24E3E605B1BA04241。以下插件受到影响:jCode

  • 问题内容: 我正在尝试使用Maven构建Javahibernate项目。但是,当我尝试执行此操作时,似乎没有依赖项吗? 我的项目中现在有了这个pom.xml: 当我尝试使用mvn进行构建时,出现此错误: 我搜索了此错误,发现很多人必须在其pom.xml文件中更改其hibernate核心依赖版本,但似乎我没有hibernate核心,那么如何解决此问题? 问题答案: 它具有建议的JTA 1.1依赖性。

  • 我在构建我的应用程序时遇到此问题。有人知道怎么回事吗? React Hook useEffect缺少依赖项:“conectar”。包括它或删除依赖项数组react hooks/dep