Я нахожу эти ошибки в своих журналах:
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 — requestURI не может содержать закодированную косую черту
Могу ли я и как применить это в Grails? Заранее большое спасибо!
РЕДАКТИРОВАТЬ 1:
Вот как я реализовал предложение Судхира:
Здесь я создал новый класс:
Вот как выглядит реализация:
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'
Что-то отсутствует или неправильно?