我有一个带有Spring Security Core和Multi-tenant单个db插件的grails 2.1.0应用程序正常工作。此应用程序的要求之一是将并发登录限制为仅一个。为此,我试图在Bootstrap中使用SpringSecurityUtils来注册过滤器。
SpringSecurityUtils.clientRegisterFilter('concurrencyFilter', SecurityFilterPosition.CONCURRENT_SESSION_FILTER)
SpringSecurityUtils是静态的,正如文档所说,不需要注入,但在执行时,它会出错
ERROR context.GrailsContextLoader - Error executing bootstraps: No such property: SpringSecurityUtils for class: BootStrap
消息:没有这样的属性:类的SpringSecurityUtils:BootStrap 线|方法 - >> 17 | BootStrap $ _closure1
中的doCall| 301 | grails.util.Environment中的evaluateEnvironmentSpecificBlock | 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安全性正常。
非常感谢任何帮助。
答案 0 :(得分:3)
你错过了导入 - 添加
import org.codehaus.groovy.grails.plugins.springsecurity.SpringSecurityUtils
看起来你也需要这个:
import org.codehaus.groovy.grails.plugins.springsecurity.SecurityFilterPosition
答案 1 :(得分:0)
@Burt Beckwith答案是对的 截至2016年11月25日,要添加的进口是
import grails.plugin.springsecurity.SpringSecurityUtils
import grails.plugin.springsecurity.SecurityFilterPosition