Настройка SOAP для Tomcat - запрос всегда отклонялся (403) - PullRequest
0 голосов
/ 22 октября 2018

У меня есть веб-сервис SOAP, который правильно настроен на сервере weblogic, но я пытаюсь заставить его работать на Tomcat.

в моем tomcat-users.xml У меня есть пользователь, настроенный так

<tomcat-users version="1.0" xmlns="http://tomcat.apache.org/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd">

 <role rolename="esknusers"/>
 <user password="password" roles="esknusers" username="esknuser"/>

</tomcat-users>

И в моем web.xml веб-сервис настроен так:

<security-constraint>
    <display-name>SecurityConstraint_ESKN</display-name>
    <web-resource-collection>
        <web-resource-name>ESKNWS</web-resource-name>
        <url-pattern>/ESKN_WS</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>esknusers</role-name>
    </auth-constraint>
    <user-data-constraint>
        <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
</security-constraint>
    <security-role>
    <role-name>esknusers</role-name>
</security-role>

Когда я пытаюсь вызвать этот веб-сервис через SOAP-UI, он всегда возвращает 403. Есть идеи, в чем может быть проблема?

В Soap-ui я использую обычную аутентификацию через имя и пароль

Сообщение от SOAP-UI:

Access to the requested resource has been denied - The server understood the request but refuses to authorize it

1 Ответ

0 голосов
/ 23 октября 2018

Вы задали имя роли, но вам также понадобится что-то из следующего в вашем файле web.xml, чтобы сообщить Tomcat, что вы используете базовую аутентификацию:

<login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>Basic Authentication</realm-name>
</login-config>

Это должно прочитать имена пользователейи пароли из вашего conf/tomcat-users.xml файла по умолчанию.

...