【问题标题】:DigestAuthenticationFilter with database users, possible?DigestAuthenticationFilter 与数据库用户,可能吗?
【发布时间】:2013-06-11 14:45:44
【问题描述】:

我的 http-digest 的 Spring-Security 实现: 代码:

<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>

我正在尝试对其进行自定义以从数据库中获取用户数据。我试图从接口类 UserDetailsS​​ervice 访问。 代码:

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);
    }

}

这不起作用,因为实现安全时的标签:用户服务,没有类属性。

任何想法?,如何访问用户数据库?

【问题讨论】:

  • 你的问题不是很清楚。您是否创建了 CustomUserDetailsService 的 bean?
  • 您好,这是xml配置的工作,但是用户是hadcoding的。用户需要访问一个bbdd,我对这个访问的想法是类CustomUserDetailsS​​ervice

标签: spring spring-security http-digest


【解决方案1】:

&lt;user-service&gt;标签用于在spring配置文件中显式定义用户。它不允许指定您自己的 UserDetailsService 实现。

要使用您的CustomUserDetailsService,您所要做的就是删除&lt;user-service&gt; 标签并将其替换为您的自定义UserDetailsService,如下所示:

<bean id="inMemoryUserService" class="you.package.CustomUserDetailsService"/>

然后您应该可以使用 pepe:psw 登录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-23
    • 1970-01-01
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多