gpt4 book ai didi

grails - UrlEncodedSlash 被 HttpFirewall 阻止(Grails 3.3.0.RC1;Spring-security-core 3.2.0.M1)

转载 作者:行者123 更新时间:2023-12-01 13:32:50 25 4
gpt4 key购买 nike

我在我的日志中发现了这个错误:

org.springframework.security.web.firewall.RequestRejectedException: The requestURI cannot contain encoded slash. Got /;lm=1488887514;m=js;asset=delayedElements%2Fsnippet;tf;ucm=353df4434086482d9d1d7b89758e156e/
at org.springframework.security.web.firewall.DefaultHttpFirewall.getFirewalledRequest(DefaultHttpFirewall.java:56)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:193)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:77)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
...

我发现这个解决方案可能适用于 Spring Boot。 Spring security DefaultHttpFirewall - The requestURI cannot contain encoded slash

我能否以及如何在 Grails 中应用它?非常感谢!

编辑 1:

这就是我实现 Sudhir 建议的方式:

我在这里创建了新类:

Here I created the new class:

这是实现的样子:

package fnx.security;

import org.springframework.security.web.firewall.DefaultHttpFirewall;

public class CustomHttpFirewall extends DefaultHttpFirewall {
CustomHttpFirewall() {
boolean allowUrlEncodedSlash = true;
}
}

这就是它包含在 application.yml 中的方式:

 grails:
plugin:
springsecurity:
httpFirewallBeanClass: 'fnx.security.CustomHttpFirewall'

有什么遗漏或错误吗?

最佳答案

默认情况下,spring security 核心插件使用 DefaultHttpFirewall,您可以通过扩展 DefaultHttpFirewall 并从构造函数中将属性 allowUrlEncodedSlash 设置为 true 来创建子类。

 CustomHttpFirewall extends DefaultHttpFirewall {
CustomHttpFirewall() {
allowUrlEncodedSlash = true
}
}

然后配置 spring security 以使用您的自定义防火墙类,如下所示。

grails.plugin.springsecurity.httpFirewallBeanClass = "full name of your class"

注意测试,但这应该有效。

关于grails - UrlEncodedSlash 被 HttpFirewall 阻止(Grails 3.3.0.RC1;Spring-security-core 3.2.0.M1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44941673/

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