0

我想在用户第一次登录时显示一个屏幕。在哪里运行检查用户之前是否登录过是否有最佳实践?我正在使用 Spring Security Core 插件。

4

1 回答 1

0

Spring Security 没有内置任何内容来执行此操作。我正在做类似的事情,但它基于用户是否接受了许可协议。这是示例过滤器代码,可以执行您想要的操作。它未经测试:

def filters = {

    neverLoggedIn(controller: "login", invert: true) {
      before = {
        if (springSecurityService.isLoggedIn()) {
          def authenticatedUser = getLoggedInUserCode()
          if (!authenticatedUser.hasLoggedInBefore) {
            redirect controller: "someFirstLoginController", action: "index"
            return false
          }
        }
      }
      after = { Map model -> }
      afterView = { Exception e -> }
    }
}
于 2013-09-13T05:05:56.287 回答