Защита API с использованием базовой аутентификации в WSO2 EI - PullRequest
1 голос
/ 29 октября 2019

Я использую API, который работает как шлюз между моей серверной службой и внешними клиентами. я пытаюсь обеспечить доступ к своему API с помощью базовой аутентификации с использованием базовой кодировки пользователя / пароля. После некоторых руководств я добавил раздел обработчика в своем API для управления модулем аутентификации.

Я пробовал этот раздел:

<handlers>
        <handler class="org.wso2.rest.BasicAuthHandler"/>
    </handlers>

Обработчик аутентификации работает хорошо для меня, но только с учетными данными администратора / администратора, даже если я изменяю пароль пользователя admin. Как я могу добавить пользователя и позволить ему использовать мой API со специальными учетными данными?

Ответы [ 3 ]

0 голосов
/ 30 октября 2019

Спасибо за ответ. я попытался изменить "org.wso2.rest.BasicAuthHandler" на org.wso2.carbon.integrator.core.handler.RESTBasicAuthHandler "в моем API и повторно развернул его. Я получил эту ошибку

Caused by: java.lang.ClassNotFoundException: org.wso2.carbon.integrator.core.handler.RESTBasicAuthHandler cannot be found by synapse-core_2.1.7.wso2v60

Кажется, мне нужен файл .jar для его загрузки, но я не могу его найти. Можете ли вы предоставить ссылку для загрузки, пожалуйста?

0 голосов
/ 13 ноября 2019

Я обновил до версии 6.5.0 ESB, и это сработало. спасибо!

0 голосов
/ 30 октября 2019

Я создал пользователя с помощью консоли управления ESO WSO2, выполнив следующие действия:

  1. Нажмите Настроить на вкладке меню слева и нажмите Добавить под Пользователи и роли .
  2. Выберите Добавить нового пользователя
  3. Введите имя пользователя и пароль и нажмите Далее
  4. Выберите Роли пользователя и нажмите Готово (я выбрал права администратора)

Затем я развернул следующий API, как указано в 1

<api xmlns="http://ws.apache.org/ns/synapse" name="StockQuoteAPI" 

context="/stockquote">
   <resource methods="GET" uri-template="/view/{symbol}">
      <inSequence>
         <payloadFactory media-type="xml">
            <format>
               <m0:getQuote xmlns:m0="http://services.samples">
                  <m0:request>
                     <m0:symbol>$1</m0:symbol>
                  </m0:request>
               </m0:getQuote>
            </format>
            <args>
               <arg evaluator="xml" expression="get-property('uri.var.symbol')"/>
            </args>
         </payloadFactory>
         <header name="Action" scope="default" value="urn:getQuote"/>
         <send>
            <endpoint>
               <address uri="http://localhost:9000/services/SimpleStockQuoteService" format="soap11"/>
            </endpoint>
         </send>
      </inSequence>
      <outSequence>
         <send/>
      </outSequence>
      <faultSequence/>
   </resource>
   <handlers>
    <handler class="org.wso2.carbon.integrator.core.handler.RESTBasicAuthHandler"/>
   </handlers>
</api>

Тогда я мог бы отправить запрос с помощью почтальона с новым именем пользователя / паролем.

enter image description here

1 https://docs.wso2.com/display/EI650/Applying+Security+to+an+API#ApplyingSecuritytoanAPI-BasicAuthUsingaBasicAuthhandler

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...