Я запускаю веб-приложение grails (Grails версия 3.3.9) со следующими двумя плагинами: spring-security-core: 3.2.3 и spring-security-ui: 3.1.2
Я хотел бы просмотреть в контроллере список пользователей, которые в настоящее время вошли в систему. Я попробовал методы, предложенные здесь:
https://classpattern.com/spring-security-sessionregistry-on-grails
http://krixisolutions.com/find-logged-users-grails-application/
но это не работает для меня. Я думаю, что эти подходы работали с более ранними версиями Grails?
В частности, в 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'
}
}
Но когда я пытаюсь скомпилировать, выдает ошибку:
unable to resolve class org.springframework.security.web.authentication.session.ConcurrentSessionControlStrategy.
Я обнаружил на веб-сайте, что ConcurrentSessionControlStrategy
устарел, поэтому я заменил его на org.springframework.security.web.authentication.session.ConcurrentSessionControlAuthenticationStrategy
(также в бине), но теперь он выдает мне ошибку:
Error creating bean with name 'concurrentSessionFilter': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.security.web.session.ConcurrentSessionFilter]: No default constructor found; nested exception is java.lang.NoSuchMethodException: org.springframework.security.web.session.ConcurrentSessionFilter.<init>()
Может ли кто-нибудь предоставить мне пошаговое руководство, как это сделать с помощью Grails 3 и текущих плагинов безопасности для пружин?
Спасибо !!!