Конфигурация Spring Security 3 в XML - PullRequest
3 голосов
/ 17 ноября 2011

Я пытался настроить Spring Security через XML в течение некоторого времени, но я не могу заставить его работать.Вот что у меня есть:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:security="http://www.springframework.org/schema/security"
       xsi:schemaLocation="http://www.springframework.org/schema/mvc
                           http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
                           http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                           http://www.springframework.org/schema/context
                           http://www.springframework.org/schema/context/spring-context-3.0.xsd
                           http://www.springframework.org/schema/security
                           http://www.springframework.org/schema/security/spring-security-3.0.xsd">

    [...]

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

    <security:authentication-manager>
        <security:authentication-provider>
            [???] <!-- What goes here? -->
        </security:authentication-provider>
    </security:authentication-manager>

</beans>

Все учебники, которые я нашел, похоже, хотят, чтобы я поместил <user-service> в заполнитель, но NetBeans не будет автоматически завершать этот элемент.Единственным, что напоминает этот элемент, является any-user-service, который, насколько я понимаю, является "абстрактным" элементом.

Я просто хочу настроить список пользователей и паролей в памяти.Как мне это сделать в Spring Security версии 3?

Ответы [ 2 ]

2 голосов
/ 17 ноября 2011
<security:authentication-manager>
   <security:authentication-provider user-service-ref="userService">
</security:authentication-provider>

<bean id="userService" class="path.to.your.implementation.of.UserDetailsService" />

или вы можете иметь базовую аутентификацию в памяти (вместо, а также):

<security:authentication-manager>
  <security:authentication-provider user-service-ref="userService">
  </security:authentication-provider>
  <security:authentication-provider user-service-ref="customAdmin">         
  </security:authentication-provider>
</security:authentication-manager>

<security:user-service id="customAdmin">
 <security:user name="yourUserName" password="yourPassword" authorities="ROLE_USER, ROLE_ADMIN" />
 <security:user name="yourOtherUserName" password="yourOtherPassword" authorities="ROLE_USER, ROLE_ADMIN" />
</security:user-service>

Официальные весенние документы - это всегда лучшее место для чтения , imho.

1 голос
/ 17 ноября 2011

Напишите свой собственный org.springframework.security.authentication.AuthenticationProvider, создайте компонент и предоставьте ссылку на ваш менеджер аутентификации:

<authentication-manager>
    <authentication-provider ref="com.example.CustomAuthenticationProvider"/>
</authentication-manager>  

В качестве альтернативы вы можете просто предоставить имена пользователей и пароли с соответствующими полномочиями (я использую это при издевательстве)

<authentication-manager>
    <authentication-provider>
        <user-service>
          <user name="test" password="test" authorities="ROLE_AUTHENTICATED" />
        </user-service>
    </authentication-provider>
</authentication-manager>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...