Spring security 当springsecurity.debg.useFilter=false时,如何登录

Spring security 当springsecurity.debg.useFilter=false时,如何登录,spring-security,grails-plugin,grails3,Spring Security,Grails Plugin,Grails3,Grails:3.1.6 Spring安全核心:3.1.1 Java:1.8 我有一个自定义登录表单和一个自定义登录控制器。 登录表单指向登录控制器的索引方法,然后将其转发到filterProcessUrl: 转发uri:“${request.contextPath}${getConf().apf.filterProcessURL}”,params:params 我可以在设置grails.plugin.springsecurity.debug.useFilter=true时登录 当我在appli

Grails:3.1.6 Spring安全核心:3.1.1 Java:1.8

我有一个自定义登录表单和一个自定义登录控制器。 登录表单指向登录控制器的索引方法,然后将其转发到filterProcessUrl:
转发uri:“${request.contextPath}${getConf().apf.filterProcessURL}”,params:params

我可以在设置
grails.plugin.springsecurity.debug.useFilter=true时登录

当我在application.groovy中设置
grails.plugin.springsecurity.debug.useFilter=false时,我尝试登录时会被发送到404页面。这就像apf.filterProcessURL一样,“/login/authenticate”不再被识别为有效的URL。我可以在日志中看到,它从未在FilterProcessURL上运行任何筛选器,而是直接从“login/index”跳到“/error”,并且不会触发“AuthenticationFailureBadCredentialsEvent”


为什么只有当我有debug.useFilter=true时它才起作用?

结果表明,转发到filterProcessUrl是个问题。当我停止转发时,我就可以登录了。筛选器链正在查看转发未更改的
请求.requestURI

当我使用调试过滤器时,转发的请求正在工作,因为调试过滤器包装了原始请求,我猜这更改了
request.requestURI
,然后会被过滤器链拾取