1010import eu .contentcloud .opa .client .impl .PolicyComponent ;
1111import eu .contentcloud .opa .client .impl .QueryComponent ;
1212import eu .contentcloud .opa .client .rest .OpaHttpClient ;
13+ import eu .contentcloud .opa .client .rest .RestClientConfiguration ;
1314import eu .contentcloud .opa .client .rest .RestClientConfiguration .LogSpecification ;
1415import eu .contentcloud .opa .client .rest .client .jdk .DefaultOpaHttpClient ;
1516import java .net .http .HttpClient ;
1617import java .net .http .HttpClient .Redirect ;
1718import java .time .Duration ;
1819import java .util .Objects ;
1920import java .util .concurrent .CompletableFuture ;
21+ import java .util .function .Consumer ;
2022import lombok .extern .slf4j .Slf4j ;
2123
2224public class OpaClient implements PolicyApi , QueryApi , DataApi , CompileApi {
@@ -99,6 +101,8 @@ public static class Builder {
99101 HttpClient .newBuilder ().connectTimeout (Duration .ofSeconds (5 )).followRedirects (Redirect .NORMAL ).build (),
100102 new ObjectMapper ());
101103
104+ private Consumer <LogSpecification > httpLogSpec = LogSpecification ::verbose ;
105+
102106 /**
103107 * @param url URL including protocol and port
104108 */
@@ -114,6 +118,12 @@ public Builder restClient(OpaHttpClient restClient) {
114118 return this ;
115119 }
116120
121+ public Builder httpLogging (Consumer <LogSpecification > httpLogSpec ) {
122+ Objects .requireNonNull (httpLogSpec );
123+ this .httpLogSpec = httpLogSpec ;
124+ return this ;
125+ }
126+
117127 public OpaClient build () {
118128
119129 var opaHttpClient = this .getOrCreateDefaultHttpClient ();
@@ -132,7 +142,7 @@ private OpaHttpClient getOrCreateDefaultHttpClient() {
132142 // configure the provided client
133143 client .configure (config -> config
134144 .baseUrl (this .url )
135- .logging (LogSpecification :: verbose ));
145+ .logging (this . httpLogSpec ));
136146
137147 return client ;
138148 }
0 commit comments