2015-06-09 3 views
2

Я пытаюсь настроить базовую аутентификацию для сервлета, развернутого на Weblogic 12c. Вот мой web.xmlОсновная проверка подлинности weblogic 12c, не запрашивающая userid

<security-constraint> 
<web-resource-collection> 
    <web-resource-name>TestServlets</web-resource-name> 
    <url-pattern>/ReasonServlet</url-pattern> 
</web-resource-collection> 
<auth-constraint> 
    <role-name>TestServiceRole</role-name> 
</auth-constraint> 
</security-constraint> 

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

<security-role> 
<role-name>TestServiceRole</role-name> 
</security-role> 

<servlet> 
    <servlet-name>ReasonServlet</servlet-name> 
    <servlet-class>com.test.go.track.servlets.ReasonServlet</servlet-class> 
    </servlet> 
<servlet> 
<servlet-mapping> 
    <servlet-name>ReasonServlet</servlet-name> 
    <url-pattern>/ReasonServlet</url-pattern> 
</servlet-mapping> 

Вот мой weblogic.xml:

<security-role-assignment> 
    <role-name>TestServiceRole</role-name> 
    <principal-name>TestUsers</principal-name> 
</security-role-assignment> 

Я также сделал следующее:

  1. Создано пользователя - тест, созданный группа - TestUsers
  2. Добавлен пользовательский тест для TestUsers
  3. создал роль - TestServiceRole, добавила группу TestUsers в качестве условия роли.
  4. Перезагруженный веб-журнал после внесения этих изменений и развертывания приложений.

Теперь, когда я пытаюсь получить доступ к своему сервлету через браузер, я не получаю всплывающее окно, чтобы ввести http userid/password. Я могу получить доступ к сервлетам, как если бы не была настроена защита.

Однако, когда я тестирую свой сервлет через SoapUI/java-клиент и явно устанавливаю неверные http-учетные данные (кодированный с использованием base64 userid: wrongpassword) в заголовке HTTP (авторизация: базовый), то weblogic отклоняет запрос с помощью авторизации 401 требуемая ошибка.

Если в запросе нет заголовка http-авторизации, предоставляется доступ.

Есть ли какая-то другая конфигурация, отсутствующая в weblogic? Я хочу, чтобы обычная проверка подлинности выполнялась всегда, есть ли там заголовок http auth или нет.

Пожалуйста, помогите! Борясь с этой проблемой в течение последних 2 дней ..

Спасибо!

+0

Может ли это быть связано с тегом в файле config.xml? В моей локальной среде базовый auth работает так, как ожидалось, когда у меня нет <принудительно-действительных-основных-auth-credentials> в моем файле config.xml. Проблема возникает только на нашем сервере разработки, я еще не уверен, что там в его config.xml. – Guru

ответ

1

Оказалось, что проблема с развертыванием с моей стороны. Конфигурация в моем исходном сообщении была в порядке. спасибо тем, кто ответил на мой вопрос !!

+0

Не могли бы вы рассказать, какой у вас был вопрос о развертывании. Я столкнулся с той же проблемой, и у меня такая же конфигурация, как у вас в дескрипторах. – noone

+0

У меня была опечатка в сценарии развертывания, и я развертывал ее в неправильной среде и тестировал ее в другой среде. Конфигурация у меня была просто прекрасна. – Guru

0

Вам не нужно указывать имя области, оно будет автоматически работать с любым Weblogic.

+0

Я просто попробовал это, я все еще вижу такое же поведение. – Guru

0

Используйте внешнее определение в файле weblogic.xml вместо основного имени.

<security-role-assignment> 
    <role-name>TestServiceRole</role-name> 
    <externally-defined/> 
</security-role-assignment> 
Смежные вопросы