[英]Grails spring security authentication provider and custom filter
我是grails语言的新手,正在使用带有grails 2.5.6和spring-security-core 2.0.0插件的Grails。
我已经在config.groovy
文件中将提供程序定义为:
grails.plugin.springsecurity.providerNames = [
'myCustomAuthenticationProvider',
'anonymousAuthenticationProvider',
'rememberMeAuthenticationProvider'
]
和我的过滤器为:
grails.plugin.springsecurity.filterChain.filterNames = [
'securityContextPersistenceFilter',
'myCustomFilter',
'exceptionTranslationFilter',
'anonymousAuthenticationFilter',
'filterInvocationInterceptor'
]
我的resources.groovy
文件:
myCustomAuthenticationProvider(MyCustomAuthenticationProvider)
myCustomFilter(myCustomFilter)
我的过滤器和提供程序都是jar提供的Java类。 该过滤器扩展了OncePerRequestFilter
,并注入了AuthenticationManager
和AuthenticationEntryPoint
。 我的提供者实现了AuthenticationProvider
问题是,当我在过滤器中放置调试点以查看AuthenticationManager
并查看列表中的“ AuthenticationProviders”时,根本看不到我的自定义提供程序。 我仍然看到默认的spring-security-core插件提供程序。
即使我从过滤器列表中将其删除,我也不理解为什么启动自定义过滤器。 似乎只需在resources.groovy
文件中对其进行定义就足以启动它。
刚意识到它被启动的原因是因为在启动时将其添加到弹簧容器中。
谢谢
弄清楚了。 我最终没有定义filterNames,在我的resources.groovy
文件中我有以下内容:
authenticationProcessingFilter(MyCustomFilter) {
...args
}
我的提供者在构建获取提供者方面的问题并不重要。 事实证明,Spring安全核心直到那之后才对其进行更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.