首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用数据库用户的DigestAuthenticationFilter,可能吗?

使用数据库用户的DigestAuthenticationFilter,可能吗?
EN

Stack Overflow用户
提问于 2013-06-11 22:45:44
回答 1查看 710关注 0票数 1

我的Spring-Security实现http-digest: Code:

代码语言:javascript
复制
<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访问。代码:

代码语言:javascript
复制
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属性。

有什么想法吗?如何访问用户数据库?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-12 22:44:19

<user-service>标记用于在spring配置文件中显式定义用户。它不允许指定您自己的UserDetailsService实现。

要使用您的CustomUserDetailsService,您所要做的就是删除<user-service>标记,并将其替换为您的自定义UserDetailsService,如下所示:

代码语言:javascript
复制
<bean id="inMemoryUserService" class="you.package.CustomUserDetailsService"/>

然后你就可以使用pepe:psw登录了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17047022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档