簡體   English   中英

禁用RestAuthenticationFilter-Grails Spring Security Rest插件

[英]Disable RestAuthenticationFilter - Grails Spring Security Rest Plugin

我將Grails v2.4.2與spring-security-rest,spring-security-core和spring-security-ui插件一起使用。

我試圖禁用spring-security-rest隨附的RestAuthenticationFilter,以便可以編寫不區分大小寫的自定義身份驗證過濾器。

在我的config.groovy中,我正在使用以下過濾器鏈圖:

grails.plugin.springsecurity.filterChain.chainMap = [
'/**': 'JOINED_FILTERS,-exceptionTranslationFilter,-authenticationProcessingFilter,-securityContextPersistenceFilter,-rememberMeAuthenticationFilter,-restAuthenticationFilter'

]

我添加了“ -restAuthenticationFilter ”以排除RestAuthenticationFilter,但它仍在運行。

通過RestAuthenticationFilter登錄時,如何排除RestAuthentication Filter或是否有更簡單的方法來增加用戶名不區分大小寫?

似乎有2個不同的問題。

如果要排除REST身份驗證篩選器,我認為您需要從鏈中刪除restTokenValidationFilter和restExceptionTranslationFilter。

嘗試

grails.plugin.springsecurity.filterChain.chainMap = [
'/**': 'JOINED_FILTERS,-exceptionTranslationFilter,-authenticationProcessingFilter,-securityContextPersistenceFilter,-rememberMeAuthenticationFilter,-restTokenValidationFilter,-restExceptionTranslationFilter'
]

如果要使用戶名不區分大小寫,只需創建GrailsUserDetailsS​​ervice的自定義實現。 實現loadUserByUsername忽略用戶名的大小寫。

參見http://grails-plugins.github.io/grails-spring-security-core/guide/userDetailsS​​ervice.html

該插件本身不執行任何身份驗證,而是將其委托給Spring的AuthenticationManager ,后者依次使用配置的任何身份驗證提供程序。 在您的情況下,使用的提供程序是DaoAuthenticationProvider ,它將用戶檢索委托給配置了userDetailsService bean。

正如@jstell所指出的那樣,核心插件提供了一個GormUserDetailsService ,您將必須對其進行子類化,重寫方法loadUserByUsername(String username, boolean loadRoles) ,並在resources.groovy中將userDetailsService配置為userDetailsService bean。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM