Пользовательская аутентификация пользователя для определенных экранов в grails

#grails #spring-security

#grails #spring-безопасность

Вопрос:

Я использую плагин spring security core в своем приложении grails. но теперь у меня есть собственное требование.

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

На экране повторной аутентификации я также хочу добавить секретный pin-код после имени пользователя и пароля.

Каков будет наилучший способ реализовать это или есть ли какой-либо плагин, доступный с этой функциональностью?

Ответ №1:

Насколько я знаю, нет ни одного плагина, который бы решал эту проблему для вас. Однако несколько лет назад Глен Смит опубликовал, как реализовать собственную пользовательскую аутентификацию для определенных URI с помощью плагина Grails Spring Security core.

То, что он описывает, очень похоже на то, что вам нужно будет сделать:

  1. Создайте пользовательский объект аутентификации для хранения запроса.

  2. Создайте пользовательский поставщик аутентификации для проверки подлинности запроса.

  3. Создайте пользовательский фильтр безопасности для применения к вашим URI.

Вы также должны отметить комментарий Берта к упомянутому сообщению о том, как зарегистрировать пользовательские фильтры аутентификации. Это устраняет часть кода, предоставленного Glen.

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

Комментарии:

1. Я решил эту проблему с помощью комбинации аннотаций и фильтров