Java Grails spring安全身份验证提供程序和自定义筛选器
我是grails语言的新手,正在使用Grails2.5.6和SpringSecurityCore2.0.0插件 我在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' ]
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在这之后才改变它