gpt4 book ai didi

spring - grails/spring security-关于使所有用户都连接的问题

转载 作者:行者123 更新时间:2023-12-02 14:52:21 25 4
gpt4 key购买 nike

我遵循了一篇文章,在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>

Controller
def sessionRegistry  
def users= new ArrayList<User>(sessionRegistry.getAllPrincipals())

http://classpattern.com/spring-security-sessionregistry-on-grails.html#.U5GICfl_uhF

最佳答案

  • 安装模板:grails install-templates
  • web.xml将在以下位置找到:src/templates/war
  • 确保侦听器标记在servlet标记之前:
  • 获取所有用户:
    sessionRegistry.getAllPrincipals().collect{User.get(it.id)}
  • 关于spring - grails/spring security-关于使所有用户都连接的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24116221/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com