#grails #spring-security
#grails #spring-безопасность
Вопрос:
Я использую плагин spring security core в своем приложении grails. но теперь у меня есть собственное требование.
Мне нужно повторно проверять подлинность пользователя для некоторых секретных экранов каждый раз, прежде чем открывать их, даже если пользователь уже вошел в систему.
На экране повторной аутентификации я также хочу добавить секретный pin-код после имени пользователя и пароля.
Каков будет наилучший способ реализовать это или есть ли какой-либо плагин, доступный с этой функциональностью?
Ответ №1:
Насколько я знаю, нет ни одного плагина, который бы решал эту проблему для вас. Однако несколько лет назад Глен Смит опубликовал, как реализовать собственную пользовательскую аутентификацию для определенных URI с помощью плагина Grails Spring Security core.
То, что он описывает, очень похоже на то, что вам нужно будет сделать:
-
Создайте пользовательский объект аутентификации для хранения запроса.
-
Создайте пользовательский поставщик аутентификации для проверки подлинности запроса.
-
Создайте пользовательский фильтр безопасности для применения к вашим URI.
Вы также должны отметить комментарий Берта к упомянутому сообщению о том, как зарегистрировать пользовательские фильтры аутентификации. Это устраняет часть кода, предоставленного Glen.
Ваша реализация будет немного сложнее, так как вам понадобится дополнительный фильтр для обнаружения сбоя аутентификации и направления пользователя на специальную страницу входа. Здесь все становится довольно сложно, но с приведенной выше информацией вы сможете начать и задавать вопросы, когда столкнетесь с препятствиями.
Комментарии:
1. Я решил эту проблему с помощью комбинации аннотаций и фильтров