001package com.box.sdkgen.internal.logging; 002 003import static com.box.sdkgen.internal.utils.UtilsManager.entryOf; 004import static com.box.sdkgen.internal.utils.UtilsManager.mapOf; 005import static com.box.sdkgen.internal.utils.UtilsManager.sanitizeMap; 006import static com.box.sdkgen.serialization.json.JsonManager.jsonToSerializedData; 007import static com.box.sdkgen.serialization.json.JsonManager.sanitizeFormEncodedBodyFromString; 008import static com.box.sdkgen.serialization.json.JsonManager.sanitizeSerializedData; 009import static com.box.sdkgen.serialization.json.JsonManager.sdToJson; 010 011import com.fasterxml.jackson.databind.JsonNode; 012import java.util.Map; 013 014public class DataSanitizer { 015 016 public final Map<String, String> keysToSanitize; 017 018 public DataSanitizer() { 019 this.keysToSanitize = 020 mapOf( 021 entryOf("authorization", ""), 022 entryOf("access_token", ""), 023 entryOf("refresh_token", ""), 024 entryOf("subject_token", ""), 025 entryOf("token", ""), 026 entryOf("client_id", ""), 027 entryOf("client_secret", ""), 028 entryOf("shared_link", ""), 029 entryOf("download_url", ""), 030 entryOf("jwt_private_key", ""), 031 entryOf("jwt_private_key_passphrase", ""), 032 entryOf("password", "")); 033 } 034 035 public Map<String, String> sanitizeHeaders(Map<String, String> headers) { 036 return sanitizeMap(headers, this.keysToSanitize); 037 } 038 039 public JsonNode sanitizeBody(JsonNode body) { 040 return sanitizeSerializedData(body, this.keysToSanitize); 041 } 042 043 public String sanitizeFormEncodedBody(String body) { 044 return sanitizeFormEncodedBodyFromString(body, this.keysToSanitize); 045 } 046 047 public String sanitizeStringBody(String body) { 048 return sanitizeStringBody(body, null); 049 } 050 051 public String sanitizeStringBody(String body, String contentType) { 052 if (contentType.equals("application/json") 053 || contentType.equals("application/json-patch+json")) { 054 try { 055 return sdToJson(this.sanitizeBody(jsonToSerializedData(body))); 056 } catch (Exception exception) { 057 return body; 058 } 059 } 060 if (contentType.equals("application/x-www-form-urlencoded")) { 061 return this.sanitizeFormEncodedBody(body); 062 } 063 return body; 064 } 065}