Java Grails spring安全身份验证提供程序和自定义筛选器

Java Grails spring安全身份验证提供程序和自定义筛选器,java,spring,grails,groovy,spring-security,Java,Spring,Grails,Groovy,Spring Security,我是grails语言的新手,正在使用Grails2.5.6和SpringSecurityCore2.0.0插件 我在config.groovy文件中将我的提供程序定义为: grails.plugin.springsecurity.providerNames = [ 'myCustomAuthenticationProvider', 'anonymousAuthenticationProvider', 'rememberMeAuthenticationProvider' ]

我是grails语言的新手,正在使用Grails2.5.6和SpringSecurityCore2.0.0插件

我在
config.groovy
文件中将我的提供程序定义为:

grails.plugin.springsecurity.providerNames = [
    'myCustomAuthenticationProvider',
    'anonymousAuthenticationProvider',
    'rememberMeAuthenticationProvider'
]
myCustomAuthenticationProvider(MyCustomAuthenticationProvider)
myCustomFilter(myCustomFilter)
我的过滤器是:

grails.plugin.springsecurity.filterChain.filterNames = [
    'securityContextPersistenceFilter',
    'myCustomFilter',
    'exceptionTranslationFilter', 
    'anonymousAuthenticationFilter',
    'filterInvocationInterceptor'
]
我的
resources.groovy
文件:

grails.plugin.springsecurity.providerNames = [
    'myCustomAuthenticationProvider',
    'anonymousAuthenticationProvider',
    'rememberMeAuthenticationProvider'
]
myCustomAuthenticationProvider(MyCustomAuthenticationProvider)
myCustomFilter(myCustomFilter)
我的过滤器和提供者都是jar提供的java类。过滤器扩展了
OncePerRequestFilter
,并注入了
AuthenticationManager
AuthenticationEntryPoint
。我的提供者实现了身份验证提供者

问题是,当我在过滤器中放置调试点以查看
AuthenticationManager
并查看其列表中的“AuthenticationProviders”时,我根本看不到自定义提供程序。我仍然看到默认的spring安全核心插件提供程序

我也不明白为什么我的自定义过滤器会启动,即使我从过滤器列表中删除它。似乎只是在
resources.groovy
文件中定义它就足够启动它了

刚刚意识到它被启动的原因是因为在启动时它被添加到spring容器中


谢谢

把它弄明白了。我最终没有定义过滤器名称,在我的
参考资料.groovy
文件中,我有以下内容:

authenticationProcessingFilter(MyCustomFilter) {
    ...args
}
我的供应商在建设上的问题——获得供应商并不重要。事实证明,SpringSecurityCore在这之后才改变它