grails登录验证

时间:2012-12-02 14:37:01

标签: grails spring-security

在Grails网络应用程序中似乎很难解决基本问题。似乎无论我做什么,我都无法按照我期望的方式行事。使用Spring Security Core插件为应用程序添加一些安全性,但如果用户尚未登录,我无法强制重定向。

这是我面临的众多问题之一,但一次一个是最好的前进方向。任何帮助,将不胜感激。

package timetracker2

import grails.timesecurity.*

class TimeController {

  def springSecurityService

  def loginverify = {
    if (springSecurityService.isLoggedIn()) {
    }
    else {
      render 'Please log in'
    }
  }

  static scaffold = Time
  ....

1 个答案:

答案 0 :(得分:2)

使用Spring Security,您通常不会在代码中检查登录状态。

有两种方法可以设置安全要求。

一种是设置URL的安全性要求。这是通过Config.groovy中的interceptUrlMap完成的。

另一种是在控制器方法上使用安全注释。 在这种情况下,要求用户登录将如下所示:

class TimeController {

  @Secured("IS_AUTHENTICATED_FULLY")
  def someMethodRequiringLogin() {
  }

  @Secured("ROLE_ADMIN")
  def someMethodRequiringAdminRole() {
  }
}

有关详细信息,请参阅Simplified Spring Security With Grails