我有一个 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 | 301评估 grails.util.Environment 中的EnvironmentSpecificBlock | 294 | 294执行环境。 。 。 。 。在 '' | 270 | 270在“”中执行当前环境 | 303 | 303内运行。 。 。 。 。 。 。 。 。 。 。 。在 java.util.concurrent.FutureTask$Sync 中 | 138 | 138在 java.util.concurrent.FutureTask 中运行 | 886|运行任务。 。 。 。 。 。 。 。 。 。 。 。在 java.util.concurrent.ThreadPoolExecutor$Worker 中 | 908 | 908跑进 '' ^ 662 |运行 。 。 。 。 。 。 。 。 。 。 。 。 。 。在java.lang.Thread中
Spring 安全性工作正常。
非常感谢任何帮助。
最佳答案
您缺少导入 - 添加
import org.codehaus.groovy.grails.plugins.springsecurity.SpringSecurityUtils
看来您也需要这个:
import org.codehaus.groovy.grails.plugins.springsecurity.SecurityFilterPosition
关于Grails 2.1.0,Spring Security 核心 - SpringSecurityUtils 没有这样的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14271966/