Определение jboss-web. xml security-domain приводит к отсутствию зависимостей для моих EJB - PullRequest
0 голосов
/ 14 апреля 2020

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

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

/ подсистема = надкрылье / реж-контекст = pepDirContext: добавить (URL = "LDAP: //127.0.0.1: 10389", основные = "UID = админ, НУ = система", удостоверение ссылка = {незашифрованный =» secret "})

/ subsystem = elytron / ldap-realm = pepRealm: add (dir-context = pepDirContext, identity-mapping = {search-base-dn =" ou = Users, dc = jboss, dc = орг», РДН-идентификатор = UID, пользователь-пароль-картостроитель = {от = "Парольпользователя"}, атрибут-отображения = [{фильтр-база-дп = "OU = Роли, DC = JBOSS, DC = орг", filter = "(& (objectClass = groupOfNames) (member = {1}))", from = "cn", to = "Roles"}]})

/ subsystem = elytron / simple-role- decoder = атрибут from-role: add (attribute = Roles)

/ subsystem = elytron / security-domain = pepSD: add (realms = [{realm = pepRealm, role-decoder = from-role-attribute) }], default-realm = pepRealm ,missions-mapper = default -missions-mapper)

/ subsystem = elytron / http-authenticat ион-завод = PEP-HTTP-аутентификации: добавить (HTTP-сервер, механизм-завод = глобальная безопасность домена = pepSD, механизм-конфигурации = [{имя-механизм = BASI C, механизм-Realm-конфигурации = [ {realm-name = pepRealm}]}]

/ subsystem = undertow / application-security-domain = pepASD: добавить (http-аутентификация-фабрика = pep-http-auth)

/ подсистема = undertow / application-security-domain = pepSD: add (http-authentication-factory = pep-http-auth)

Примечание: я решил два "application-security-domain" как часть из тестов, в идеале я хотел использовать только 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: Операция («полная замена») -deployment ") ошибка - адрес: ([]) - описание ошибки: {
" 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] "

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

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

1 Ответ

0 голосов
/ 14 апреля 2020

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

/ subsystem = ejb3 / application-security-domain = pepASD: add (security-domain = pepSD)

Мне нужно еще немного попробовать, чтобы проверить отношения (если таковые имеются) между ejb3 и undertow's application-security-domain

...