gpt4 book ai didi

java - 在 Retrofit 2 日志记录中过滤敏感 json 字段

转载 作者:行者123 更新时间:2023-12-02 04:32:27 25 4
gpt4 key购买 nike

我正在为 Retrofit2 使用自定义拦截器,以便以漂亮的格式记录所有请求/响应 json。

问题是此日志不仅用于本地调试目的,还会发送到 Instabug(类似于 Crashlytics)以帮助调试用户报告的问题或崩溃。

因此,该服务中的信息不应包含电子邮件、密码等用户身份信息,这一点很重要。

由于在拦截器中我们只获取原始请求/响应,因此是手动检查所有可能的敏感字段并将其从 json 的记录版本中删除的唯一解决方案?

最佳答案

这是从日志中过滤任何请求/响应参数的简单方法:

// Request patterns to filter
private static final String[] REQUEST_PATTERNS = {
"Content-Type",
};
// Response patterns to filter
private static final String[] RESPONSE_PATTERNS = {"Server", "server", "X-Powered-By", "Set-Cookie", "Expires", "Cache-Control", "Pragma", "Content-Length", "access-control-allow-origin"};

// Log requests and response
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
@Override
public void log(String message) {

// Blacklist the elements not required
for (String pattern: REQUEST_PATTERNS) {
if (message.startsWith(pattern)) {
return;
}
}
// Any response patterns as well...
for (String pattern: RESPONSE_PATTERNS) {
if (message.startsWith(pattern)) {
return;
}
}
Log.d("RETROFIT", message);
}
});
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);

以下是完整要点:

https://gist.github.com/mankum93/179c2d5378f27e95742c3f2434de7168

关于java - 在 Retrofit 2 日志记录中过滤敏感 json 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56574589/

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