2015-04-13 3 views
0

Я использую Grails v2.4.2 с плагинами с пружинным защитой, пружинным защитным ядром и плагинами spring-security-ui.Отключить RestAuthenticationFilter - плагин Spring Spring Security для плагинов

Я пытаюсь отключить RestAuthenticationFilter, который поставляется с Spring-security-rest, так что я могу написать настраиваемый фильтр проверки подлинности, который не чувствителен к регистру.

В моей Config.groovy, я использую следующий фильтр цепи Карта:

grails.plugin.springsecurity.filterChain.chainMap = [ 
'/**': 'JOINED_FILTERS,-exceptionTranslationFilter,-authenticationProcessingFilter,-securityContextPersistenceFilter,-rememberMeAuthenticationFilter,-restAuthenticationFilter' 

]

я добавил '- restAuthenticationFilter' исключить RestAuthenticationFilter, но он все еще работает ,

Как я могу исключить фильтр RestAuthentication или есть более простой способ добавить чувствительность регистра к имени пользователя при входе в систему через RestAuthenticationFilter?

ответ

2

Кажется, 2 разных вопроса.

Если вы хотите исключить фильтр авторизации REST, я думаю, вам нужно удалить restTokenValidationFilter и restExceptionTranslationFilter из цепочки.

Попробуйте

grails.plugin.springsecurity.filterChain.chainMap = [ 
'/**': 'JOINED_FILTERS,-exceptionTranslationFilter,-authenticationProcessingFilter,-securityContextPersistenceFilter,-rememberMeAuthenticationFilter,-restTokenValidationFilter,-restExceptionTranslationFilter' 
] 

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

См http://grails-plugins.github.io/grails-spring-security-core/guide/userDetailsService.html

+0

Я знаю об услуге пользовательской информации, но можете ли вы реализовать это с помощью плагина для безопасности весны? Я не вижу нигде, когда мы используем UserDetailsService, и все, что мы используем Gorm для хранения токенов. –

+0

А, так что я вижу, что GormUserDetailsService - это класс и часть ядра grails-spring-security-core. Вместо этого я напишу один из них. –

1

Плагин не выполняет никакой аутентификации себя, а скорее делегаты его к Спрингу AuthenticationManager, который, в свою очередь, использует любой поставщик аутентификации, сконфигурированный. В вашем случае используемым провайдером является DaoAuthenticationProvider, и он делегирует пользовательский поиск для настроенного компонента userDetailsService.

Как @jstell отмечалось, основной модуль обеспечивает GormUserDetailsService, что вам придется подклассы, переопределить метод loadUserByUsername(String username, boolean loadRoles), а также настроить в качестве resources.groovyuserDetailsService компонента.

Смежные вопросы