Spring Security HTTP Basic Аутентификация - PullRequest
8 голосов
/ 22 апреля 2010

Я пытаюсь сделать очень простую базовую аутентификацию с помощью Spring Security.Я правильно настроил пространство имен, и на сервере нет исключений.В моем "servlet.xml" у меня есть следующее для Spring Security:

<security:http>
    <security:http-basic></security:http-basic>
    <security:intercept-url method="POST" pattern="/**" access="ROLE_USER" />
</security:http>


<security:authentication-manager alias="authenticationManager">
    <security:authentication-provider>
        <security:user-service>
            <security:user name="cucu" password="tas" authorities="ROLE_USER" />
            <security:user name="bob" password="bobspassword" authorities="ROLE_USER" />
        </security:user-service>
    </security:authentication-provider>
</security:authentication-manager>

Почти все идет идеально: методы, которые не POST, не запрашивают форму входа, а1005 * метод подскажи это.Проблема в том, что ни cucu, ни bob не могут войти туда.Кто-нибудь может увидеть, что я делаю не так?

Заранее спасибо!; -)

Ответы [ 2 ]

24 голосов
/ 23 апреля 2010

Автоматический ответ

T_T Два дня удара головой об код для этого ...

Похоже, это не проблема кода. Я использовал Weblogic с ним, и Weblogic захватывает запросы с заголовком «авторизация», поэтому он не попадает в мой менеджер аутентификации. Я попробовал это со стеклянной рыбкой, и она отлично работает.

В поисках информации я нашел полезную запись в следующем блоге: http://yplakosh.blogspot.com/2009/05/how-to-fix-basic-authentication-issue.html

Добавление следующей строки в config.xml с моего сервера Weblogic (<security-configuration> section):

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

Weblogic не будет перехватывать базовые учетные данные для аутентификации, поэтому это будет ваш менеджер по аутентификации, который будет обрабатывать его.

Я надеюсь, что это может сэкономить время любому: -)

1 голос
/ 22 апреля 2010

попробуй:

<http auto-config="true>
   <security:intercept-url method="POST" pattern="/**" access="ROLE_USER" />
   <http-basic />
</http>
...