我有一个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