繁体   English   中英

Grails / Spring Security:无法使用新创建的用户登录

[英]Grails/Spring Security: Unable to login with a newly created user

我刚开始使用grails并安装了spring-security和spring-security-ui插件。 我按照这里给出的教程。 应用程序启动一个自举用户meROLE_ADMIN许可。

通过UI覆盖脚本,我能够启动并运行注册功能,并且可以正常工作。 现在,我已经安装了用户管理脚本( grails s2ui-override user )来尝试添加,编辑和删除用户。

一个新用户被创建得很好,我已经针对HSQLDB实例进行了检查。 但是,如果我现在从应用程序注销并尝试使用新创建的用户登录,则应用程序会告诉我它无法找到具有提供的用户名和密码的用户。

我没有修改默认的注销处理,所以使用/j_spring_security_logout ,正如文档所说,会话无效。

这是一个知道问题吗? 如果是这样,我该如何解决这个问题,或者如果不能如何调试此问题?

编辑:

如果没有添加UI,此问题也会持续存在。 注册为新用户。 完成电子邮件验证后,您将自动登录该站点。 现在注销并尝试再次登录。 它给出了同样的错误。

最终编辑:

UI插件附带RegisterController,它仍然对密码进行编码。 但是,核心附带的较新域类也在执行此操作,建议的做法是控制器不应该这样做。 我注释掉了一行执行编码,登录/注销现在至少可以用于基本场景。

该教程有一个警告

早期版本的插件在域类中没有包含密码加密逻辑,但它使代码更加清晰。

我猜测security-ui插件不知道该更改,并将未加密的密码与数据库中的加密密码进行比较。

我设法解决了我的问题。 问题是双重加密。 在第41行的用户控制器中的spring security ui下,密码被加密,然后由域类再次加密,因此在登录时它正在比较双重加密的密码和单个加密的密码。 为了解决这个问题,我只是在用户控制器中注释了第41行,它正在加密密码

编辑:如果您无法确定编辑控制器的位置,您可以在用户家中找到下载插件的源代码

/.grails/version/projects/projectname/plugins

用于编辑的目录(至少在Mac / Linux上,dunno,你可以在windows中找到它)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM