У меня есть приложение, которое требует от пользователей выбирать между двумя различными методами аутентификации. Один из них - аутентификация имени пользователя и пароля, а другая - имя пользователя/пароль/одноразовый пароль.Grails spring Security add authentication method
я создал дополнительный поставщика проверки подлинности и он работает хорошо, когда переопределение поставщика daoAuthenticationProvider в моем resources.groovy, как это сделано в http://burtbeckwith.com/blog/?p=1090
однако теперь, когда я нужен мой метод аутентификации, чтобы жить бок о бок со стандартной daoAuthenticationProvider я немного застрял.
Я знаю, что у меня есть собственный поставщик аутентификации и настраиваемый фильтр, зарегистрированный в ресурсах.groovy. Вопрос в том, как сделать мой URL-адрес («redirect/my_auth to the filter») перехваченным моим настраиваемым фильтром?
Не получилось, чтобы это сработало. Раскройте мою регистрацию фильтра в ресурсах.groovy и добавьте код, как указано выше, получите жалобу, что мой фильтр не найден во время запуска (имеет смысл, что мне нужно зарегистрировать его правильно?). Даже если я зарегистрирую его, что-то не так происходит в цепочке, поскольку он никогда не попадает в мой настраиваемый фильтр. – Iman
. Теперь я создал альтернативное решение, в котором моя форма входа отправляет поле для метода проверки подлинности. Затем я регистрирую один фильтр в качестве параметра authenticationProcessingFilter и там определяют, какой объект аутентификации должен создаваться на основе предлагаемого метода аутентификации. объекты аутентификации подключены к моему провайдеру аутентификации следующим образом булевы поддерживает (класс Расширяет Object> authenticationClass) { CustomAuthentication.isAssignableFrom authenticationClass } Однако вы решение гораздо более элегантно, если я могу заставить его работать :) – Iman