java - Grails Spring 安全认证提供者和自定义过滤器
问题描述
我是 grails 语言的新手,正在使用 grails 2.5.6 和 spring-security-core 2.0.0 插件。
我在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
}
我的供应商在获得供应商方面的建设问题并不重要。原来弹簧安全核心在那之后才改变它。
推荐阅读
- javascript - 关于 API 网关 URL 错误(SES、API 网关、Lambda 与 javascript/html 集成)的任何想法?
- java - StreamingResponseBody 中的异常处理不起作用
- c# - 使用 Newtonsoft.Json 序列化时如何限制缩进深度
- ios - 观看 Connectivity transferUserInfo 从未完成, didReceiveUserInfo 从未调用
- html - 按下按钮动画
- c++ - OpenGL - 渲染到单通道纹理?
- javascript - Webscrape Json 使用 Excel VBA 使用 VBA-JSON 插件
- python - 在鼻子测试框架 Python Qualis 中获取 AssertionError
- shell - Apple Automator / Scripting - 将同一图像调整为多种尺寸
- azure - 在 Azure webjob 上运行 Windows 任务计划程序作业(计划事件)