Есть ли способ выйти из конкретного пользователя или всех пользователей из базы данных? - PullRequest
0 голосов
/ 19 мая 2019

Я использую Grails 2.2 с пружинной защитой. Я использую MYSql для базы данных. Мне интересно, есть ли способ выйти из системы пользователя или всех пользователей путем очистки данных в базе данных mysql.

Ответы [ 4 ]

3 голосов
/ 19 мая 2019

Мне интересно, есть ли способ выйти из системы пользователя или всех пользователей очистка данных в базе данных mysql.

Нет. Состояние, представляющее, вошел ли пользователь в систему или нет, вообще не существует в базе данных. В простой системе эта информация будет храниться в памяти в веб-приложении. В более сложной системе эта информация может находиться в отдельной службе, с которой приложение взаимодействует. Эта информация, как правило, не будет храниться в базе данных.

Обратите внимание, что хранение учетных данных, таких как имена пользователей, пароли и роли, в базе данных - это отдельная вещь, а не отслеживание того, кто вошел в систему.

Надеюсь, это поможет.

1 голос
/ 19 мая 2019

Если вы удалите данные в вашей БД, пользователи не смогут войти в СЛЕДУЮЩИЙ РАЗ.

Если какие-либо текущие сеансы открыты, пользователи останутся вошедшими в систему, и в Spring Security не будет готового механизма для завершения сеанса определенных пользователей.

0 голосов
/ 21 мая 2019

Вы не можете делать в точности то, что просили, потому что данные не хранятся в базе данных вашего приложения, как сказал JSB.

Однако вы можете проверить сеансы из вашего веб-приложения и аннулировать некоторые из них, что приведет квыйти из системы ассоциированного пользователя (ей).Я написал сервис и контроллер на основе старого плагина " app-info " и "scopesInfoService".См. источник и блог .

Если вам нужно быстрое исправление и его развертывание в Tomcat, попробуйте использовать веб-приложение менеджера для аннулирования сеансов для вашего веб-приложения, хотя может быть сложно определить, какие сеансы выбрать, если вы еще не добавили имя пользователя явно(или другая идентифицирующая строка) к атрибуту сеанса 'Login' при успешном завершении аутентификации.

0 голосов
/ 19 мая 2019

Если вы установите JavaMelody (иногда доступный как плагин Grails), вы сможете увидеть все активные сеансы и удалить их из интерфейса (в результате чего все пользователи будут отключены) .

...