Переопределить роль приложения application-bnd security с помощью configDropins

У меня есть образ докера приложения, основанного на свободе websphere. По умолчанию этот образ использует базовую аутентификацию с basicRegistry, в которой есть несколько примеров пользователей. Затем группа basicRegistry привязывается к роли безопасности следующим образом (и на эту роль безопасности ссылаются из файла web.xml приложения):

<webApplication id="myWebapp" ...>
    <application-bnd>
        <security-role name="Users">
            <group name="Users"/>
        </security-role>
    </application-bnd>
</webApplication>

Теперь в моей среде аутентификация будет обрабатываться за пределами этого контейнера, и поэтому я хочу отключить базовую проверку подлинности и сделать ее открытой для всех, кто может получить к ней доступ. Вместо того, чтобы перепаковывать весь server.xml, я надеялся просто добавить некоторую конфигурацию в configDropins/override, чтобы отключить аутентификацию для веб-приложения.

Попробовав это, я немного запутался в том, должно ли / как это должно работать... Вот наблюдаемое поведение:

Если я сначала запускаю сервер, то добавляю фрагмент конфигурации в configDropins/override, например:

<webApplication id="myWebapp">
    <application-bnd>
        <security-role name="Users">
            <special-subject type="EVERYONE"/>
        </security-role>
    </application-bnd>
</webApplication>

Затем веб-приложение перезагрузится и базовая аутентификация будет отключена (хорошо).

Однако, когда я упаковываю этот же самый фрагмент конфигурации в configDropins/override, а затем запускаю сервер, веб-приложение запускается с включенной базовой аутентификацией, и все запросы не выполняются со статусом HTTP 401.

Может ли кто-нибудь помочь мне понять это поведение и / или предложить альтернативный подход?

1 ответ

Решение

Добавление атрибута "id" к элементу security-role должно решить эту проблему. В вашем примере, по сути, есть два элемента роли безопасности после обработки конфигурации. Среда выполнения безопасности объединит их вместе на основе имени, но поведение будет различаться в зависимости от порядка получения двух элементов роли безопасности.

Другие вопросы по тегам