我的Spring-Security实现http-digest: Code:
<bean id="digestFilter" class="org.springframework.security.web.authentication.www.DigestAuthenticationFilter">
<property name="userDetailsService" ref="userService"/>
<property name="authenticationEntryPoint" ref="digestEntryPoint"/>
</bean>
========================================================================
<security:authentication-manager alias="authenticationManager">
<security:authentication-provider ref="inMemoryAuthenticationProvider"/>
</security:authentication-manager>
========================================================================
<bean id="inMemoryAuthenticationProvider"
class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">
<property name="hideUserNotFoundExceptions" value="false"/>
<property name="userDetailsService" ref="inMemoryUserService"/>
<property name="messageSource" ref="messageSource"/>
</bean>
========================================================================
<security:user-service id="inMemoryUserService">
<security:user name="user" password="user" authorities="ROLE_USER"/>
<security:user name="admin" password="admin" authorities="ROLE_ADMIN"/>
<security:user name="invitado" password="invitado" authorities="ROLE_INVITADO"/>
</security:user-service>我正在尝试对其进行自定义,以便从数据库中获取用户数据。我尝试从接口类UserDetailsService访问。代码:
public class CustomUserDetailsService implements UserDetailsService {
@Override
public UserDetails loadUserByUsername(String arg0)
throws UsernameNotFoundException {
List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
authorities.add(new SimpleGrantedAuthority("ROLE_USER"));
return new User(
"pepe",
"psw",
true,
true,
true,
true,
authorities);
}
}这不起作用,因为实现安全时的标签: user-service,没有class属性。
有什么想法吗?如何访问用户数据库?
发布于 2013-06-12 22:44:19
<user-service>标记用于在spring配置文件中显式定义用户。它不允许指定您自己的UserDetailsService实现。
要使用您的CustomUserDetailsService,您所要做的就是删除<user-service>标记,并将其替换为您的自定义UserDetailsService,如下所示:
<bean id="inMemoryUserService" class="you.package.CustomUserDetailsService"/>然后你就可以使用pepe:psw登录了。
https://stackoverflow.com/questions/17047022
复制相似问题