2013-02-20 2 views
1

я читал о весенней безопасности с весны в действии, и я хочу, чтобы реализующее это: у меня есть вебы-приложение, в котором есть два вида пользователей, хранящихся в базе данных:Как связать правила аутентификации пружинной безопасности пользователей базы данных

1) Администратор

2) Клиенты

Это весна-security.xml:

<beans:beans xmlns="http://www.springframework.org/schema/security" 
xmlns:beans="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
http://www.springframework.org/schema/security 
http://www.springframework.org/schema/security/spring-security-3.0.3.xsd"> 

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

<authentication-manager> 
    <authentication-provider> 
    <user-service> 
    <user name="name" password="password" authorities="ROLE_USER" /> 
    </user-service> 
    </authentication-provider> 
</authentication-manager> 

</beans:beans> 

Так как относиться:

<user-service> <user name="name" password="password" authorities="ROLE_USER" /> </user-service> К записи пользователя базы данных (администратора и клиентов)? Я добавил этот раздел web.xml:

<!-- Spring Security --> 
<filter> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <filter-class> 
     org.springframework.web.filter.DelegatingFilterProxy 
    </filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

ответ

2

Вы не можете сопоставить, как это.

Для этой цели вам необходимо использовать обычай UserDetailsService. Используя userDetailsService, вы можете загрузить пользователя из базы данных и передать его в весеннюю систему безопасности.

public class UserDetailsServiceImpl implements UserDetailsService { 
    public UserDetails loadUserByUsername(String userName) 
      throws UsernameNotFoundException, DataAccessException { 
     User user = getUser(userName); //Load user from database 
     if (user == null) { 
      throw new UsernameNotFoundException("User not found: " + userName); 
     } 
     return user; 
    } 
} 

security.xml

<authentication-manager> 
    <authentication-provider user-service-ref="userDetailsService" /> 
</authentication-manager> 
Смежные вопросы