Проблема двойной аутентификации для веб-службы REST, развернутой в WebLogic

1

У меня есть успокаивающий веб-сервис, который защищен с помощью HTTP Basic authentication с LDAP провайдером.

После развертывания приложения в WebLogic он запрашивает проверку подлинности дважды после вызова.

Сначала с помощью Spring Security Затем с помощью WebLogic Server.

Дальнейшее исследование по этому вопросу показывает, что client requests that use HTTP BASIC authentication must pass WebLogic Server authentication, even if access control is not enabled on the target resource.

В качестве опции (предоставленной в ответе) аутентификацию WebLogic можно отключить с помощью следующей конфигурации в файле config.xml:

<enforce-valid-basic-auth-credentials>false</enforce-valid-basic-auth-credentials>

Но это повлияет на все другие приложения, развернутые в том же домене. И я хочу это только для конкретного приложения.

Оцените любые предложения.

Теги:
java-ee-6
http-basic-authentication
weblogic11g

2 ответа

3

Попробуйте отключить проверку подлинности WebLogic в config.xml:

<enforce-valid-basic-auth-credentials>false</enforce-valid-basic-auth-credentials>

См. Например,

Таким образом вы можете включить или отключить это для каждого домена. Если вам нужно настроить таргетинг на конкретное приложение, подумайте о том, чтобы разместить это приложение в выделенном домене.

  • 1
    Спасибо, Вилли, но это отключит основную аутентификацию weblogic для всех других приложений, также развернутых в том же контейнере.
  • 0
    на самом деле я не хочу отключать авторизацию weblogic для всех, кроме только для конкретного приложения.
Показать ещё 1 комментарий
0

Начнется работа после добавления ниже конфигурации. Но требуется добавить нового пользователя в консоль weblogic или мы можем использовать пользователя по умолчанию.

Добавлена настройка ниже в файле WEB-INF\web.xml

  <security-constraint>
    <display-name>Secure REST Area</display-name>
    <web-resource-collection>
        <web-resource-name>Secure REST</web-resource-name>
        <url-pattern>/api/*</url-pattern>
        <http-method>POST</http-method>
    </web-resource-collection>

    <auth-constraint>
        <role-name>Admin</role-name>
    </auth-constraint>
</security-constraint>

<login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>default</realm-name>
</login-config>

<security-role>
    <role-name>Admin</role-name>
</security-role>

созданный файл дескриптора weblogic в WEB-INF\weblogic.xml и добавленный ниже конфигурации.

<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <security-role-assignment>
     <role-name>Admin</role-name>
     <!-- <principal-name>Administrators</principal-name>-->
     <externally-defined/>
 </security-role-assignment>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню