Переопределить роль приложения 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 должно решить эту проблему. В вашем примере, по сути, есть два элемента роли безопасности после обработки конфигурации. Среда выполнения безопасности объединит их вместе на основе имени, но поведение будет различаться в зависимости от порядка получения двух элементов роли безопасности.