【问题标题】:Spring Security: What is the UserDetailsManager interface used for? And more!Spring Security:UserDetailsManager 接口是做什么用的?和更多!
【发布时间】:2010-10-18 06:29:03
【问题描述】:

我对@9​​87654321@ 接口很好奇。参考指南中没有提到它,在 JavaDoc 中它被描述为:

的扩展 UserDetailsService 提供 创建新用户和更新的能力 现有的。

在实现UserDetailsManager 接口时,您必须实现它自己的五种方法,其中一种方法继承自它扩展的 UserDetailsS​​ervice。

这些方法是:createUser、updateUser、deleteUser、changePassword、userExists 和继承的方法 loadUserByUsername。

在Spring Security框架v2.0.4中有两个UserDetailsManager的具体实现:JdbcUserDetailsManagerLdapUserDetailsManager

接口和具体实现均由 Luke Taylor 实现。

Spring Security 框架似乎从不使用具体的实现。

我的结论是,该界面纯粹是作为一个方便的界面,框架的用户可能会或可能不会决定使用它。也许有人认为以后会出现更具体的实现并为框架用户承担一些工作?

我正在寻找更多信息。要使信息有价值,它必须直接或间接(我想这很可能)来自对框架开发过程有深入了解的人。其他任何人都可以猜测,就像我在上面所做的那样。

如果它只是一个方便的界面。 是否还有更多此类接口和类未出现在参考指南中?我很想知道,因为它可能对我在开发过程中有所帮助。

查看所有接口和类以查看框架中实际使用了哪些接口和类有点繁琐,如果涉及反射,也可能容易出错(因此调用了我的 IDE 无法识别的调用)。

【问题讨论】:

  • 此外,LdapUserDetailsManager 对用户和组的位置做出各种假设(cn=users, cn=groups)。这些是硬编码的,因此在许多情况下,这个默认实现是无用的,只是一个示例。

标签: java spring-security


【解决方案1】:

你的猜测是正确的。根据original feature request 的说法,它被添加“因为它是一个非常普遍的特性,并且通过扩展现有接口和类可以相当简单地实现。

There has been talk 创建一个单独的项目来填充这个界面,但是这还没有生效。

【讨论】:

    猜你喜欢
    • 2010-09-27
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多