我有一个grails 2.1.0应用程序,其中Spring Security Core和 Multi-Tenancy 单数据库插件运行良好。此应用程序的要求之一是将并发登录限制为一个。为此,我试图在Bootstrap中使用SpringSecurityUtils注册过滤器。

 SpringSecurityUtils.clientRegisterFilter('concurrencyFilter', SecurityFilterPosition.CONCURRENT_SESSION_FILTER)

SpringSecurityUtils是静态的,正如文档所述,不需要注入(inject),但是在执行时会出错
ERROR context.GrailsContextLoader  - Error executing bootstraps: No such property: SpringSecurityUtils for class: BootStrap

消息:没有这样的属性:SpringSecurityUtils类:BootStrap
线|方法
->> 17 | BootStrap $ _closure1中的doCall

| 301 | grails.util.Environment中的EvaluationEnvironmentSpecificBlock
| 294 | executeForEnvironment。 。 。 。 。在''
| 270 | ''中的executeForCurrentEnvironment
| 303 | innerRun。 。 。 。 。 。 。 。 。 。 。 。在java.util.concurrent.FutureTask $ Sync中
| 138 |在java.util.concurrent.FutureTask中运行
| 886 | runTask。 。 。 。 。 。 。 。 。 。 。 。在java.util.concurrent.ThreadPoolExecutor $ Worker中
| 908 |运行 ''
^ 662 |跑 。 。 。 。 。 。 。 。 。 。 。 。 。 。在java.lang.Thread中

否则,Spring安全性可以正常工作。

任何帮助深表感谢。

最佳答案

您缺少导入-添加

import org.codehaus.groovy.grails.plugins.springsecurity.SpringSecurityUtils

看起来您也需要这个:
import org.codehaus.groovy.grails.plugins.springsecurity.SecurityFilterPosition

08-26 11:28