我尝试只启用一个Play过滤器,同时禁用其他过滤器(如主机过滤或CSRF过滤)。
这是我的application.conf file
:
play.http.filters=<filter that I am enabling>
play.filters.disabled+=play.filters.hosts.AllowedHostsFilter
play.filters.disabled+=play.filters.csrf.CSRFFilter
似乎在我最初添加了行play.http.filters=<filter that I am enabling>
后,已禁用的过滤器再次启用,因为我看到熟悉的错误消息:
Illegal 'x-forwarded-for' header: Invalid input ':', expected listSep or 'EOI' (line 1, column 13)
在scala play框架中禁用某些过滤器并启用某些过滤器的正确方法是什么?
答案 0 :(得分:1)
在游戏2.6中,禁用/启用默认过滤器由changig application.conf完成。要启用默认过滤器,请添加play.filters.enabled。要禁用默认过滤器,您应添加play.filters.disabled。
我认为这里有一些混乱。 play.http.filters应该是应用中类的完全限定类名。该类负责启用/禁用过滤器。以下是过滤器的简单示例,它尊重play.filters.enabled / disabled配置:
print(re.sub(r"([a-z])\1+",r"\1",st)) -- print URGENT
答案 1 :(得分:0)
在Play 2.6中,您应该能够按documentation中所述{{1}}进行操作。
仅启用该列表中的过滤器。如果未列出,则将禁用所有默认过滤器。