我有一个运行良好的 webapp(一个 .war,包含一个带有三个 EJB 的 .jar)。
我通过 jboss-cli 定义了一个 LDAP 安全域:
/subsystem=elytron/dir-context=pepDirContext:add(url="ldap://127.0.0.1:10389",principal="uid=admin,ou=system",credential-reference={clear-text="secret "})
/subsystem=elytron/ldap-realm=pepRealm:add(dir-context=pepDirContext,identity-mapping={search-base-dn="ou=Users,dc=jboss,dc=org",rdn-identifier=uid, user-password-mapper={from="userPassword"},attribute-mapping=[{filter-base-dn="ou=Roles,dc=jboss,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=pepSD:add(realms=[{realm=pepRealm,role-decoder=from-roles-attribute}],default-realm=pepRealm,permission-mapper=default-permission-mapper)
/subsystem=elytron/http-authentication-factory=pep-http-auth:add(http-server-mechanism-factory=global,security-domain=pepSD,mechanism-configurations=[{mechanism-name=BASIC,mechanism-realm -configurations=[{realm-name=pepRealm}]}]
/subsystem=undertow/application-security-domain=pepASD:add(http-authentication-factory=pep-http-auth)
/subsystem=undertow/application-security-domain=pepSD:add(http-authentication-factory=pep-http-auth)
注意:我已经决定将两个“应用程序安全域”作为测试的一部分,理想情况下我只想使用 pepASD。
现在,我将 WEB-INF/jboss-web.xml 文件添加到我的战争中:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<security-domain>pepSD</security-domain>
</jboss-web>
当我部署它时,我得到:
14:48:31,347 错误 [org.jboss.as.controller.management-operation](DeploymentScanner-threads - 2)WFLYCTL0013:操作(“完全替换部署”)失败 - 地址:([]) - 失败描述: {
"WFLYCTL0412: 未安装的必需服务:" => ["jboss.security.security-domain.pepSD"],
"WFLYCTL0180: 缺少/不可用依赖项的服务" => [
"jboss.deployment.unit.\" frontend.war\".component.UsuarioEjb.CREATE 丢失 [jboss.security.security-domain.pepSD]",
"jboss.deployment.unit.\"frontend.war\".component.GerenciaEjb.CREATE 丢失 [jboss .security.security-domain.pepSD]"、
"jboss.deployment.unit.\"frontend.war\"。缺少 component.FlujoEjb.CREATE [jboss.security.security-domain.pEPSD]"
我错过了什么?
我在 Java 11 上使用 WildFly 18.0.0.1。