如果我使用 LDAP 身份验证,为啥必须在我的用户域中存储密码列?
Posted
技术标签:
【中文标题】如果我使用 LDAP 身份验证,为啥必须在我的用户域中存储密码列?【英文标题】:Why must I store a password column in my User domain if I'm using LDAP authentication?如果我使用 LDAP 身份验证,为什么必须在我的用户域中存储密码列? 【发布时间】:2015-02-06 12:56:17 【问题描述】:我有一个使用 Spring Security Core 和 Spring Security LDAP 插件的 Grails 应用程序。我使用 LDAP 服务器的身份验证绑定方法作为我唯一的身份验证提供程序。为什么我还必须在我的数据库中存储密码列?我的应用程序完全不需要存储密码值,但是如果我从生成的用户域类中删除密码字段,它将不起作用。我真的必须在我的用户表中存储一个值为 null 的密码列吗?当然,必须有不同的方法来解决这个问题。
【问题讨论】:
有一个空值的列看起来很乱?我确定安全插件的代码还不稳定,我在RC4,谁知道需要多长时间才能到达v1.0 Spring Security 不要求您有密码列。我猜这是 Grails 约定优于配置的事情。 @holmis83 也许我的问题应该是,“如何防止 Grails 将域属性持久化到数据库中?” 【参考方案1】:我认为你不必!
只需在 UserAccount 类中将密码字段定义为 transient
:
class UserAccount
String password
static transients = [ 'password' ]
【讨论】:
就这样,我发现了 Grails 的另一个方面,我不知道存在 :)以上是关于如果我使用 LDAP 身份验证,为啥必须在我的用户域中存储密码列?的主要内容,如果未能解决你的问题,请参考以下文章