Обычная аутентификация перестала работать в Open Liberty - PullRequest
0 голосов
/ 15 июня 2019

У меня есть служба REST, работающая в Docker на Open Liberty. Вот файл Docker:

FROM open-liberty:kernel
COPY server.xml /config/
COPY jvm.options /config/
COPY tlscertificate.p12 /opt/ol/wlp/output/defaultServer/resources/security/
ADD aa-lookup-1.war /config/dropins/

server.xml:

<server description="AA Lookup">

    <featureManager>
        <feature>jaxrs-2.1</feature>
        <feature>cdi-2.0</feature>
        <feature>ejb-3.2</feature>
        <feature>appSecurity-3.0</feature>
        <feature>transportSecurity-1.0</feature>
    </featureManager>

    <keyStore id="defaultKeyStore" location="tlscertificate.p12" password="{xor}jsdjdksjdk=" type="PKCS12"/>

    <basicRegistry id="basic" realm="BasicRealm">
        <group name="aa-reader">
            <member name="MyUser"></member>
        </group>
        <user password="{hash}DJKJDKLSJDJKDJSKLD7D7JJ" name="MyUser"></user>
    </basicRegistry>

    <webApplication id="aa-lookup" location="aa-lookup-1.war" name="aa-lookup" contextRoot="aa">
        <application-bnd>
           <security-role name="aa-reader">
               <user name="MyUser" />
           </security-role>
        </application-bnd>
   </webApplication>

</server>

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                             http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <security-constraint>
      <web-resource-collection>
        <web-resource-name>REST</web-resource-name>
        <url-pattern>/*</url-pattern>
      </web-resource-collection>
      <auth-constraint>
        <role-name>aa-reader</role-name>
      </auth-constraint>
    </security-constraint>

</web-app>

В коде Java нет ничего связанного с аутентификацией, и базовая аутентификация работала нормально. Затем мой Docker был как-то поврежден, и я запустил новый экземпляр облака, перестроил и запустил там образ Docker.

Теперь имя пользователя и пароль больше не принимаются. На моем локальном компьютере я использую Open Liberty 18.0.0.2 с Eclipse, и там хорошо работает аутентификация Хранилище OpenLiberty больше не содержит эту версию. В Docker я пробовал с 18.0.0.4 и новее.

Я установил аутентификацию с нуля с помощью Инструкции IBM , но это не помогло. Когда я включил ведение журнала трассировки уровня FINE, я обнаружил, что ему нужна роль [aa-reader} -> return 401.

Как настроить простую базовую аутентификацию в последних версиях Open Liberty?

...