gpt4 book ai didi

grails - Grails Spring Security添加身份验证方法

转载 作者:行者123 更新时间:2023-12-02 14:45:41 24 4
gpt4 key购买 nike

我有一个要求用户在2种不同的身份验证方法之间进行选择的应用程序。
一个是用户名/密码认证,另一个是用户名/密码/一次性密码。

我已经创建了其他身份验证提供程序,并且像http://burtbeckwith.com/blog/?p=1090中所做的那样在我的resources.groovy中覆盖daoAuthenticationProvider提供程序时效果很好

但是现在当我需要我的身份验证方法与标准daoAuthenticationProvider并存时,我有点卡住了。

我知道我有我的自定义身份验证提供程序和在resource.groovy中注册的自定义过滤器。问题是如何使url(“redirect / my_auth to filter”)被我的自定义过滤器拦截?

最佳答案

可以在Config.groovy中使用filterChain配置,而不是在resources.groovy中注册过滤器。声明springsecurity将在filterchain.filterNames中使用的所有过滤器,包括所需的标准过滤器和自定义过滤器:

grails.plugins.springsecurity.filterChain.filterNames = [
'securityContextPersistenceFilter', 'logoutFilter',
'authenticationProcessingFilter', 'firstCustomFilter','secondCustomFilter',
'rememberMeAuthenticationFilter', 'anonymousAuthenticationFilter',
'exceptionTranslationFilter', 'filterInvocationInterceptor'
]

然后将您的自定义过滤器映射到特定的网址-使用排除方法的一种方法如下:
grails.plugins.springsecurity.filterChain.chainMap = [
'/customUrlOne/**': 'JOINED_FILTERS,-secondCustomFilter',
'/customUrlTwo/**': 'JOINED_FILTERS,-firstCustomFilter',
'/**': 'JOINED_FILTERS,-firstCustomFilter,-secondCustomFilter'
]

JOINED_FILTERS 是您在第一张 map 中声明的所有过滤器的集合。在“/ **”下,除您的自定义过滤器之外的所有过滤器都将处于 Activity 状态。同样,在自定义网址下,所有过滤器(减去用于其他URL的排除的自定义过滤器)将处于 Activity 状态。这将确保前往customUrlOne的流量将被firstCustomFilter拦截,而前往customUrlTwo的流量将由secondCustomFilter拦截。

关于grails - Grails Spring Security添加身份验证方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11333594/

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