Определение домена безопасности jboss-web.xml приводит к отсутствию зависимостей для моих EJB

У меня есть рабочее веб-приложение (.war, которое включает .jar с тремя EJB), которое отлично работает.

Я определяю домен безопасности LDAP через jboss-cli:

/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-Mechan-factory = global, security-domain = pepSD, Mechan-configurations = [{имя-механизма = BASIC, область-механизма -configurations = [{realm-name = pepRealm}]}]

/ subsystem = undertow / application-security-domain = pepASD: add (http-authentication-factory = pep-http-auth)

/ subsystem = undertow / application-security-domain = pepSD: добавить (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] "

Что мне не хватает?

Я использую WildFly 18.0.0.1 на Java 11.


person SJuan76    schedule 14.04.2020    source источник


Ответы (1)


Оказывается, для EJB мне нужно определить домен безопасности приложения в подсистеме ejb3:

/ subsystem = ejb3 / application-security-domain = pepASD: добавить (security-domain = pepSD)

Мне нужно попробовать еще немного, чтобы проверить отношения (если есть) между ejb3 и доменом безопасности приложения undertow

person SJuan76    schedule 14.04.2020
comment
Я попытался запустить следующую команду: /subsystem=ejb3/application-security-domain=EjbApplicationDomain:add(security-domain=EjbSecurityDomain) и получил следующее сообщение об ошибке: `` {result = ›failed, failure-description =› WFLYCTL0369: Необходимые возможности недоступны: org.wildfly.security.security-domain.EjbSecurityDomain; Возможные точки регистрации для этой возможности: / subsystem = elytron / security-domain = *, roll-back = ›true}` `` - person Amar Premsaran Patel; 09.10.2020