首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用RestAuthenticationFilter - Grails插件

禁用RestAuthenticationFilter - Grails插件
EN

Stack Overflow用户
提问于 2015-04-13 14:10:13
回答 2查看 846关注 0票数 0

我使用Grailsv2.4.2与spring-security-rest、spring-security-core和spring-security-ui插件。

我试图禁用security附带的RestAuthenticationFilter,这样我就可以编写一个不区分大小写的自定义身份验证筛选器。

在我的config.groovy中,我使用以下过滤器链映射:

代码语言:javascript
复制
grails.plugin.springsecurity.filterChain.chainMap = [
'/**': 'JOINED_FILTERS,-exceptionTranslationFilter,-authenticationProcessingFilter,-securityContextPersistenceFilter,-rememberMeAuthenticationFilter,-restAuthenticationFilter'

]

我添加了'-restAuthenticationFilter‘以排除RestAuthenticationFilter,但它仍然在运行。

我如何排除RestAuthentication过滤器,或者在通过RestAuthenticationFilter登录时,是否有一种更容易将大小写不敏感添加到用户名的方法?

EN

回答 2

Stack Overflow用户

发布于 2015-04-13 16:57:49

好像有两个不同的问题。

如果您想要排除REST auth过滤器,我认为您需要从链中删除restTokenValidationFilter和restExceptionTranslationFilter。

试一试

代码语言:javascript
复制
grails.plugin.springsecurity.filterChain.chainMap = [
'/**': 'JOINED_FILTERS,-exceptionTranslationFilter,-authenticationProcessingFilter,-securityContextPersistenceFilter,-rememberMeAuthenticationFilter,-restTokenValidationFilter,-restExceptionTranslationFilter'
]

如果要使用户名不区分大小写,只需创建GrailsUserDetailsService的自定义实现即可。实现loadUserByUsername以忽略用户名的大小写。

请参阅http://grails-plugins.github.io/grails-spring-security-core/guide/userDetailsService.html

票数 2
EN

Stack Overflow用户

发布于 2015-04-14 07:39:46

插件本身不执行任何身份验证,而是将其委托给Spring的AuthenticationManager,后者使用配置的任何身份验证提供程序。在您的示例中,所使用的提供程序是DaoAuthenticationProvider,它将用户检索委托给userDetailsService配置的bean。

正如@jstell所指出的,核心插件提供了一个GormUserDetailsService,您必须将其子类化,重写方法loadUserByUsername(String username, boolean loadRoles),并在resources.groovy中配置为userDetailsService bean。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29607438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档