gpt4 book ai didi

java - Grails Spring 安全认证提供程序和自定义过滤器

转载 作者:行者123 更新时间:2023-12-02 15:44:26 24 4
gpt4 key购买 nike

我是 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并拥有 AuthenticationManagerAuthenticationEntryPoint注入(inject)。我的提供商实现了 AuthenticationProvider
问题是当我在过滤器中放置一个调试点以查看 AuthenticationManager并查看列表中的 `AuthenticationProviders,我根本看不到我的自定义提供程序。我仍然看到默认的 spring-security-core 插件提供程序。

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

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

谢谢

最佳答案

弄清楚了。我最终没有定义 filterNames 并且在我的 resources.groovy文件我有这个:

authenticationProcessingFilter(MyCustomFilter) {
...args
}

我的供应商在获得供应商方面的 build 问题并不重要。原来 Spring 安全核心在那之后才改变它。

关于java - Grails Spring 安全认证提供程序和自定义过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51120010/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com