use*_*863 6 security logback carriage-return linefeed log-forging
我正在使用Logback,并且在记录用户参数时需要避免CRLF(回车和换行)。
我试图在静态地图PatternLayout.defaultConverterMap上添加扩展了ClassicConverter的类,但是没有用。
谢谢,
您应该按照logback 文档中的描述创建自定义布局
自定义布局:
package com.foo.bar;
import ch.qos.logback.classic.PatternLayout;
import ch.qos.logback.classic.spi.ILoggingEvent;
public class RemoveCRLFLayout extends PatternLayout {
@Override
public String doLayout(ILoggingEvent event) {
return super.doLayout(event).replaceAll("(\\r|\\n)", "");
}
}
Run Code Online (Sandbox Code Playgroud)
登录配置:
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="com.foo.bar.RemoveCRLFLayout">
<pattern>%d %t %-5p %logger{16} - %m%n</pattern>
</layout>
</encoder>
Run Code Online (Sandbox Code Playgroud)