@@ -38,6 +38,11 @@ public class NetworkSession
3838 /// </summary>
3939 public INetworkClient NetworkClient { get ; init ; } = new BoxNetworkClient ( ) ;
4040
41+ /// <summary>
42+ /// Data sanitizer used to sanitize sensitive data for logging.
43+ /// </summary>
44+ public DataSanitizer DataSanitizer { get ; init ; } = new DataSanitizer ( ) ;
45+
4146 public NetworkSession ( Dictionary < string , string > ? additionalHeaders = default , BaseUrls ? baseUrls = null )
4247 {
4348 AdditionalHeaders = additionalHeaders ?? new Dictionary < string , string > ( ) ;
@@ -50,7 +55,7 @@ public NetworkSession(Dictionary<string, string>? additionalHeaders = default, B
5055 /// </summary>
5156 public NetworkSession WithNetworkClient ( INetworkClient networkClient )
5257 {
53- return new NetworkSession ( this . AdditionalHeaders , this . BaseUrls ) { RetryAttempts = this . RetryAttempts , RetryStrategy = this . RetryStrategy , proxyConfig = this . proxyConfig , NetworkClient = networkClient } ;
58+ return new NetworkSession ( this . AdditionalHeaders , this . BaseUrls ) { RetryAttempts = this . RetryAttempts , RetryStrategy = this . RetryStrategy , proxyConfig = this . proxyConfig , NetworkClient = networkClient , DataSanitizer = this . DataSanitizer } ;
5459 }
5560
5661 /// <summary>
@@ -62,7 +67,7 @@ public NetworkSession WithNetworkClient(INetworkClient networkClient)
6267 /// </param>
6368 public NetworkSession WithAdditionalHeaders ( Dictionary < string , string > additionalHeaders )
6469 {
65- return new NetworkSession ( DictionaryUtils . MergeDictionaries ( this . AdditionalHeaders , additionalHeaders ) , this . BaseUrls ) { RetryAttempts = this . RetryAttempts , RetryStrategy = this . RetryStrategy , proxyConfig = this . proxyConfig , NetworkClient = this . NetworkClient } ;
70+ return new NetworkSession ( DictionaryUtils . MergeDictionaries ( this . AdditionalHeaders , additionalHeaders ) , this . BaseUrls ) { RetryAttempts = this . RetryAttempts , RetryStrategy = this . RetryStrategy , proxyConfig = this . proxyConfig , NetworkClient = this . NetworkClient , DataSanitizer = this . DataSanitizer } ;
6671 }
6772
6873 /// <summary>
@@ -74,7 +79,7 @@ public NetworkSession WithAdditionalHeaders(Dictionary<string, string> additiona
7479 /// </param>
7580 public NetworkSession WithCustomBaseUrls ( BaseUrls baseUrls )
7681 {
77- return new NetworkSession ( this . AdditionalHeaders , baseUrls ) { RetryAttempts = this . RetryAttempts , RetryStrategy = this . RetryStrategy , proxyConfig = this . proxyConfig , NetworkClient = this . NetworkClient } ;
82+ return new NetworkSession ( this . AdditionalHeaders , baseUrls ) { RetryAttempts = this . RetryAttempts , RetryStrategy = this . RetryStrategy , proxyConfig = this . proxyConfig , NetworkClient = this . NetworkClient , DataSanitizer = this . DataSanitizer } ;
7883 }
7984
8085 /// <summary>
@@ -86,7 +91,15 @@ public NetworkSession WithCustomBaseUrls(BaseUrls baseUrls)
8691 /// </param>
8792 public NetworkSession WithProxy ( ProxyConfig config )
8893 {
89- return new NetworkSession ( this . AdditionalHeaders , this . BaseUrls ) { RetryAttempts = this . RetryAttempts , RetryStrategy = this . RetryStrategy , proxyConfig = config , NetworkClient = this . NetworkClient } ;
94+ return new NetworkSession ( this . AdditionalHeaders , this . BaseUrls ) { RetryAttempts = this . RetryAttempts , RetryStrategy = this . RetryStrategy , proxyConfig = config , NetworkClient = this . NetworkClient , DataSanitizer = this . DataSanitizer } ;
95+ }
96+
97+ /// <summary>
98+ /// Generate a fresh network session by duplicating the existing configuration and network parameters,
99+ /// while also including a data sanitizer to be used to sanitize sensitive data for logging.
100+ public NetworkSession WithDataSanitizer ( DataSanitizer dataSanitizer )
101+ {
102+ return new NetworkSession ( this . AdditionalHeaders , this . BaseUrls ) { RetryAttempts = this . RetryAttempts , RetryStrategy = this . RetryStrategy , proxyConfig = this . proxyConfig , NetworkClient = this . NetworkClient , DataSanitizer = dataSanitizer } ;
90103 }
91104 }
92105}
0 commit comments