我正在使用 springsecurity core 1.2 和 spring security ui 0.2。在使用 registercontroller 的默认设置中,用户可以将 accountLocked 设置为 true:
def user = new User(username: username,
enabled: true,
password: password,
accountExpired: false,
accountLocked: true,
passwordExpired: false)
在 RegisterController.register 中,将向新用户发送一封确认电子邮件。电子邮件到达,用户点击电子邮件中的链接,RegisterController.verifyRegistration 为用户设置 accountLocked = false。
这都是开箱即用的默认行为,因此我不会列出所有相关代码。默认行为是在 accountLocked = false 之前不允许用户登录。如果您注册然后稍后再回来登录,登录表单上会显示“帐户锁定”错误。
即使 accountLocked 为真,我也希望允许用户登录(这意味着他们没有点击确认电子邮件中的验证链接)。在不添加我自己的“myAccountLocked”字段的情况下如何做到这一点?
我希望能够基于 accountLocked 控制用户的某些帐户活动,但他们仍然应该能够在单击电子邮件中的验证链接之前登录以访问其帐户的某些部分。
我对默认安装所做的一项更改是我在注册过程中创建用户,而不是在验证过程中。我的验证过程只是将 accountLocked 标志设置为 false,仅此而已。