Отдельный логин для JBoss? - PullRequest
       12

Отдельный логин для JBoss?

0 голосов
/ 28 сентября 2011

Я пытаюсь создать упакованный RPM-файл Ear, который должен быть установлен вместе с другими RPM-пакетами Ear-файлами в контейнере JBoss. (Возможно, я мог бы создать отдельный контейнер в JBoss, но это слишком много для одного Уха.) Это прекрасно работает, за исключением одной проблемы.

Моя проблема заключается в том, что этот файл Ear предоставляет веб-сервисы, которые используют собственную политику аутентификации (login-config.xml policy / application-policy / authentication / login-module). Теперь, когда несколько RPM хотят предоставить аутентификационную информацию через этот файл, мы вступаем в конфликт с правилом спецификации RPM о том, что ни один файл не может принадлежать более чем одному пакету RPM (и в любом случае, какой бы RPM ни был последним, это приведет к срыву предыдущего).

Есть ли способ, которым блок политики приложений / аутентификации может быть объявлен в отдельном файле или каким-либо образом, который размещает его вне login-config.xml? Например, возможно ли объявить дополнительные mbean-компоненты безопасности (в отдельных файлах), которые ссылаются на отдельное определение XML для входа?

Это JBoss v4.2, но я хотел бы рассмотреть его позже, если он решит эту проблему.

Обновление:

Лукаш правил. Ниже работает конфиг!

<?xml version='1.0'?>

<server>
<mbean code="org.jboss.security.auth.login.DynamicLoginConfig"
name="jboss.security.tests:service=LoginConfig">

<depends optional-attribute-name="SecurityManagerService">
  jboss.security:service=JaasSecurityManager
</depends>
<depends optional-attribute-name="LoginConfigService">
  jboss.security:service=XMLLoginConfig
</depends>

<attribute name="PolicyConfig" serialDataType="jbxb">

  <jaas:policy
    xsi:schemaLocation="urn:jboss:security-config:4.1 resource:security-config_4_1.xsd"
    xmlns:jaas="urn:jboss:security-config:4.1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <jaas:application-policy name="mySecurityDomain">
      <jaas:authentication>
        <jaas:login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required">
          <jaas:module-option name="unauthenticatedIdentity">noone</jaas:module-option>
          <jaas:module-option name="dsJndiName">java:/myDataSource</jaas:module-option>
          <jaas:module-option name="principalsQuery">SELECT password FROM WebServiceUser WHERE userName=?</jaas:module-option>
          <jaas:module-option name="rolesQuery">SELECT role, 'Roles' FROM WebServiceUser WHERE userName=?</jaas:module-option>
        </jaas:login-module>
      </jaas:authentication>
    </jaas:application-policy>
  </jaas:policy>

</attribute>
</mbean>
</server>

1 Ответ

1 голос
/ 29 сентября 2011

Вы можете попробовать и настроить модуль входа в систему, используя сервис DynamicLoginConfig.Я никогда не пользуюсь им, но похоже, что-то, что может вам помочь.Это позволяет вам создать конфигурацию модуля входа в другой файл и развернуть ее во время установки приложения.

Здесь вы можете найти больше информации об этом:

...