Grails REST 用户身份验证

Posted

技术标签:

【中文标题】Grails REST 用户身份验证【英文标题】:Grails REST User Authentication 【发布时间】:2014-02-07 02:53:08 【问题描述】:

我有两个 Grails 应用程序,它们具有相似的逻辑,使用两个不同的数据库,但需要相同的用户、用户角色、用户权限,并且它们之间关联的所有连接表都相同。例如,如果用户登录到第一个应用程序并更改了他们的密码,则需要在第二个应用程序数据库上更新该更改。

我的问题是:有没有办法使用 RESTful API 做到这一点?此实施是否有任何最佳实践?我意识到 LDAP 或其他类型的外部目录服务可能是最好的选择,但我想看看是否有一种安全的方法可以使用 RESTful API 来做到这一点。

我在使用 REST 更新用户时看到的问题是密码更新时。当第二个应用程序仍然具有与用户关联的旧凭据时,对第二个应用程序的请求将尝试使用新凭据进行身份验证。有没有安全的方法解决这个问题?

如果能够使用已经为这两个应用程序设置的表,那就太好了。使用 LDAP 服务器的问题在于,必须将一组其他应用程序迁移到使用 LDAP 服务器进行身份验证。这将对应用程序套件造成相当大的体系结构更改。

【问题讨论】:

我还想到了另一种可能最好的解决方案......只是使用多个数据源连接到对方的数据库并在用户更新第一个时更新用户。 【参考方案1】:

如何在两个应用程序中分别使用两个数据源,一个用于单独的应用程序逻辑,一个用于用户。两个应用程序中的用户数据源是否使用相同的数据库?

编辑:您还可以在插件中对用户相关的域类进行分组,并让两个应用程序导入相同的插件以保持类同步。

【讨论】:

以上是关于Grails REST 用户身份验证的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Grails 中使用 spring security rest 插件进行身份验证

将 REST 身份验证添加到 Grails + SpringSecurity 浏览器应用程序

使用 REST API 的 Spring Security 身份验证?

Grails 中基于 RESTful 证书的 (X509) 登录身份验证

Grails - Spring 安全 ldap 活动目录身份验证 - 凭据错误错误

grails spring security rest /api/login 401 Unauthorized