powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring список online пользователей
16 сообщений из 16, страница 1 из 1
Spring список online пользователей
    #38424377
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Хочу получить список всех пользователей кто сейчас online

для этого добавляю в securityContext.xml

Код: java
1.
<beans:bean id="sessionRegistry" class="org.springframework.security.core.session.SessionRegistryImpl"/>


В

коде делаю вызов :
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
@Controller
public class UserController {

   @Autowired
    private SessionRegistryImpl sessionRegistry;

...

  List<Object> principals = sessionRegistry.getAllPrincipals();


Массив пустой !

как получить список всех активных пользователей ?


И еще если я хочу ограничить доступ - один пользователь - одна сессия -

беру и добавляю securityContext.xml
Код: java
1.
2.
3.
4.
   <beans:bean id="sas" class="org.springframework.security.web.authentication.session.ConcurrentSessionControlStrategy">
       <beans:constructor-arg name="sessionRegistry" ref="sessionRegistry" />
       <beans:property name="maximumSessions" value="1" />
   </beans:bean>



но не работает по той же причине !?
...
Рейтинг: 0 / 0
Spring список online пользователей
    #38424899
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу первого не скажу, а второе вроде как решается настройкой <concurrency-control> в <http> конфига Spring Security - дока : прописываем слушатель org.springframework.security.web.session.HttpSessionEventPublisher в web.xml и добавляем <concurrency-control max-sessions="1"/> в раздел <http> конфига.
...
Рейтинг: 0 / 0
Spring список online пользователей
    #38425540
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может есть еще способы получения списка online пользователей?
...
Рейтинг: 0 / 0
Spring список online пользователей
    #38425541
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1,
Я знаю только способ через HttpSessionListener
...
Рейтинг: 0 / 0
Spring список online пользователей
    #38425549
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GregTk,

Спасибо, это я знаю :)

я имею ввиду spring и то что в нем есть из коробки .
...
Рейтинг: 0 / 0
Spring список online пользователей
    #38428896
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HttpSessionListener через него можно понять когда создалась сессия и когда была закрыта, можно навесить счетчик , но вот как их события получить Principal ?

есть только getId - session id - по этому ключу хочется и создать мапу для Principal'ов активных пользователей, в которую их класть по создании сессии и удалять при закрытии.

Что хочется иметь в статистики : getUserPrincipal name , роли, а так же getRemoteUser и getRemoteAddr
...
Рейтинг: 0 / 0
Spring список online пользователей
    #38428923
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1,

ну создай табличку в БД, на старте сессии - пихай туда всю инфу, на клоуз сессии - удаляй. Инфу извлекай посредством sql, и в хвост и в гриву.)
...
Рейтинг: 0 / 0
Spring список online пользователей
    #38428990
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть только маленький нюансик: если дефолтное время жизни сессии 40 минут, то сессионный листенер получит событие окончания сессии через 40 минут, то есть фактически при таком подходе мы получаем не совсем список людей онлайн. Однако других способов без каких-то штучек а-ля комет нет.
...
Рейтинг: 0 / 0
Spring список online пользователей
    #38429156
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckЕсть только маленький нюансик: если дефолтное время жизни сессии 40 минут, то сессионный листенер получит событие окончания сессии через 40 минут, то есть фактически при таком подходе мы получаем не совсем список людей онлайн. Однако других способов без каких-то штучек а-ля комет нет.

Хочется без таблицы - одной мапой все решить.

Имея таблицу - нужно будет : ее чистить при старте сервера, итд.

Да сессия 40 минут и все это время пользователь как бы online.

можно конечно , в таблице пользователей добавить поле - флаг - online и при логине его выставлять в true , потом сбрасывать.

но тоже ,сне не очень нравится .

Буду разбираться с SessionRegistryImpl
...
Рейтинг: 0 / 0
Spring список online пользователей
    #38429602
Sherst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Spring список online пользователей
    #38430829
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1IDVsbruckЕсть только маленький нюансик: если дефолтное время жизни сессии 40 минут, то сессионный листенер получит событие окончания сессии через 40 минут, то есть фактически при таком подходе мы получаем не совсем список людей онлайн. Однако других способов без каких-то штучек а-ля комет нет.

Хочется без таблицы - одной мапой все решить.

Имея таблицу - нужно будет : ее чистить при старте сервера, итд.

Да сессия 40 минут и все это время пользователь как бы online.

можно конечно , в таблице пользователей добавить поле - флаг - online и при логине его выставлять в true , потом сбрасывать.

но тоже ,сне не очень нравится .

Буду разбираться с SessionRegistryImpl


есть такая прелестная штука - redis. там есть ttl и все что нужно. идеально решит задачу, не нужно никаких листнеров
добавляете фильтр, который при очередном реквесте продлевает ttl на какое-то время. и все.
...
Рейтинг: 0 / 0
Spring список online пользователей
    #38432433
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Penkov Vladimirесть такая прелестная штука - redis. там есть ttl и все что нужно. идеально решит задачу, не нужно никаких листнеров
добавляете фильтр, который при очередном реквесте продлевает ttl на какое-то время. и все.

можно ссылок полезных ? и примеров? :) буду признателен
...
Рейтинг: 0 / 0
Spring список online пользователей
    #38432524
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
google в помощь, по редису документации полно
...
Рейтинг: 0 / 0
Spring список online пользователей
    #38434877
drsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как-то так
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
<security:session-management session-fixation-protection="newSession" >
	<security:concurrency-control max-sessions="50" />
</security:session-management>		
</security:http>

+ 

@Autowired
private SessionRegistry sessionRegistry;
...
Рейтинг: 0 / 0
Spring список online пользователей
    #38434881
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Spring список online пользователей
    #38434883
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring список online пользователей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]