【发布时间】:2014-07-29 18:05:35
【问题描述】:
我按照一篇文章在 Grails 中使用 spring 安全性获取所有已连接的用户,但它在 getAllPrincipals 方法上失败了:
“消息:无法在空对象上调用方法 getAllPrincipals()”
代码:
resources.groovy
import org.springframework.security.web.authentication.session.ConcurrentSessionControlStrategy
import org.springframework.security.web.session.ConcurrentSessionFilter
import org.springframework.security.core.session.SessionRegistryImpl
import org.springframework.security.web.authentication.session.SessionAuthenticationStrategy
beans = {
sessionRegistry(SessionRegistryImpl)
sessionAuthenticationStrategy(ConcurrentSessionControlStrategy, sessionRegistry) {
maximumSessions = -1
}
concurrentSessionFilter(ConcurrentSessionFilter){
sessionRegistry = sessionRegistry
expiredUrl = '/login/concurrentSession'
}
}
web.xml
<listener>
<listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>
控制器
def sessionRegistry
def users= new ArrayList<User>(sessionRegistry.getAllPrincipals())
http://classpattern.com/spring-security-sessionregistry-on-grails.html#.U5GICfl_uhF
【问题讨论】:
标签: spring grails spring-security