Сервер Liberty 19.0.0.9 - как авторизовать пользователя, не прошедшего проверку подлинности

У меня новая проблема с безопасностью контейнера. На сервере у меня два уха первый звонит в сервис второй. На сервисе есть @RolesAllowed("Authenticated"). Моя конфигурация в server.xml выглядит так:

<featureManager>
    <feature>jndi-1.0</feature>
    <feature>distributedMap-1.0</feature>
    <feature>localConnector-1.0</feature>
    <feature>wasJmsClient-2.0</feature>
    <feature>jdbc-4.1</feature-->
    <feature>javaMail-1.5</feature>
    <feature>json-1.0</feature>
    <feature>adminCenter-1.0</feature>
    <feature>appSecurity-2.0</feature>
    <feature>beanValidation-2.0</feature>
    <feature>cdi-2.0</feature>
    <feature>jsf-2.3</feature>
    <feature>mdb-3.2</feature>
    <feature>ejbHome-3.2</feature>
    <feature>ejbLite-3.2</feature>
    <feature>ejbRemote-3.2</feature>
    <feature>jca-1.7</feature>
    <feature>concurrent-1.0</feature>
    <feature>jms-2.0</feature>
    <feature>appClientSupport-1.0</feature>
    <feature>ldapRegistry-3.0</feature>
  </featureManager>


<basicRegistry id="basic" realm="customRealm">
    <user password="{xor}Ozo5Kiw6LQ==" name="defuser" />
</basicRegistry>

Оба уха имеют одинаковую конфигурацию

<application-bnd>
    <security-role name="All Role">
        <special-subject type="ALL_AUTHENTICATED_USERS" />
    </security-role>
</application-bnd>

Второе ухо содержит файл ibm-application-ibd.xml, но я не могу его редактировать. Лучше всего было бы переопределить его. Когда я вызываю службу из второго уха, я все еще получаю исключение: вызвано: javax.ejb.EJBAccessException: CWWKS9400A: авторизация не удалась для пользователя UNAUTHENTICATED при вызове

Есть идеи?


person darkstar    schedule 15.10.2019    source источник
comment
Какова ваша конфигурация безопасности в web.xml? Поскольку похоже, что вы не вошли в приложение или не предоставляете учетные данные во время вызова службы,   -  person Gas    schedule 15.10.2019


Ответы (1)


Liberty позволяет переопределять файлы привязки приложений с помощью элемента конфигурации сервера application-bnd, см. раздел IBM KnowledgeCenter https://www.ibm.com/support/knowledgecenter/en/SSEQTP_liberty/com.ibm.websphere.liberty.autogen.base.doc/ae/rwlp_config_enterpriseApplication.html#application-bnd и https://www.ibm.com/support/knowledgecenter/en/SSEQTP_liberty/com.ibm.websphere.wlp.doc/ae/twlp_sec_rolebased.html для получения подробной информации.

person F Rowe    schedule 15.10.2019
comment
Но я сделал, как в документации, и это не работает. - person darkstar; 15.10.2019
comment
Опубликуйте соответствующие части вашего server.xml, показывающие элемент ‹application› - person F Rowe; 15.10.2019
comment
‹application id=TEST location=${server.config.dir}/apps/TEST.ear name=PTEST type=ear› ‹classloader privateLibraryRef=javassist commonLibraryRef=javassist delegate=parentLast /› ‹application-bnd› ‹security-role name=All Role› ‹special-subject type=ALL_AUTHENTICATED_USERS /› ‹/security-role› ‹/application-bnd› ‹/application› - person darkstar; 15.10.2019