@@ -74,18 +74,18 @@ public AuditClient(
7474 * @param authenticationDetailsProvider The authentication details provider, required.
7575 * @param configuration The client configuration, optional.
7676 * @param clientConfigurator ClientConfigurator that will be invoked for additional configuration of a REST client, optional.
77- * @param requestSignerFactory The request signer factory used to create the request signer for this service.
77+ * @param defaultRequestSignerFactory The request signer factory used to create the request signer for this service.
7878 */
7979 public AuditClient (
8080 com .oracle .bmc .auth .AbstractAuthenticationDetailsProvider authenticationDetailsProvider ,
8181 com .oracle .bmc .ClientConfiguration configuration ,
8282 com .oracle .bmc .http .ClientConfigurator clientConfigurator ,
83- com .oracle .bmc .http .signing .RequestSignerFactory requestSignerFactory ) {
83+ com .oracle .bmc .http .signing .RequestSignerFactory defaultRequestSignerFactory ) {
8484 this (
8585 authenticationDetailsProvider ,
8686 configuration ,
8787 clientConfigurator ,
88- requestSignerFactory ,
88+ defaultRequestSignerFactory ,
8989 new java .util .ArrayList <com .oracle .bmc .http .ClientConfigurator >());
9090 }
9191
@@ -97,20 +97,20 @@ public AuditClient(
9797 * @param authenticationDetailsProvider The authentication details provider, required.
9898 * @param configuration The client configuration, optional.
9999 * @param clientConfigurator ClientConfigurator that will be invoked for additional configuration of a REST client, optional.
100- * @param requestSignerFactory The request signer factory used to create the request signer for this service.
100+ * @param defaultRequestSignerFactory The request signer factory used to create the request signer for this service.
101101 * @param additionalClientConfigurators Additional client configurators to be run after the primary configurator.
102102 */
103103 public AuditClient (
104104 com .oracle .bmc .auth .AbstractAuthenticationDetailsProvider authenticationDetailsProvider ,
105105 com .oracle .bmc .ClientConfiguration configuration ,
106106 com .oracle .bmc .http .ClientConfigurator clientConfigurator ,
107- com .oracle .bmc .http .signing .RequestSignerFactory requestSignerFactory ,
107+ com .oracle .bmc .http .signing .RequestSignerFactory defaultRequestSignerFactory ,
108108 java .util .List <com .oracle .bmc .http .ClientConfigurator > additionalClientConfigurators ) {
109109 this (
110110 authenticationDetailsProvider ,
111111 configuration ,
112112 clientConfigurator ,
113- requestSignerFactory ,
113+ defaultRequestSignerFactory ,
114114 additionalClientConfigurators ,
115115 null );
116116 }
@@ -123,15 +123,50 @@ public AuditClient(
123123 * @param authenticationDetailsProvider The authentication details provider, required.
124124 * @param configuration The client configuration, optional.
125125 * @param clientConfigurator ClientConfigurator that will be invoked for additional configuration of a REST client, optional.
126- * @param requestSignerFactory The request signer factory used to create the request signer for this service.
126+ * @param defaultRequestSignerFactory The request signer factory used to create the request signer for this service.
127127 * @param additionalClientConfigurators Additional client configurators to be run after the primary configurator.
128128 * @param endpoint Endpoint, or null to leave unset (note, may be overridden by {@code authenticationDetailsProvider})
129129 */
130130 public AuditClient (
131131 com .oracle .bmc .auth .AbstractAuthenticationDetailsProvider authenticationDetailsProvider ,
132132 com .oracle .bmc .ClientConfiguration configuration ,
133133 com .oracle .bmc .http .ClientConfigurator clientConfigurator ,
134- com .oracle .bmc .http .signing .RequestSignerFactory requestSignerFactory ,
134+ com .oracle .bmc .http .signing .RequestSignerFactory defaultRequestSignerFactory ,
135+ java .util .List <com .oracle .bmc .http .ClientConfigurator > additionalClientConfigurators ,
136+ String endpoint ) {
137+ this (
138+ authenticationDetailsProvider ,
139+ configuration ,
140+ clientConfigurator ,
141+ defaultRequestSignerFactory ,
142+ com .oracle .bmc .http .signing .internal .DefaultRequestSignerFactory
143+ .createDefaultRequestSignerFactories (),
144+ additionalClientConfigurators ,
145+ endpoint );
146+ }
147+
148+ /**
149+ * Creates a new service instance using the given authentication provider and client configuration. Additionally,
150+ * a Consumer can be provided that will be invoked whenever a REST Client is created to allow for additional configuration/customization.
151+ * <p>
152+ * This is an advanced constructor for clients that want to take control over how requests are signed.
153+ * @param authenticationDetailsProvider The authentication details provider, required.
154+ * @param configuration The client configuration, optional.
155+ * @param clientConfigurator ClientConfigurator that will be invoked for additional configuration of a REST client, optional.
156+ * @param defaultRequestSignerFactory The request signer factory used to create the request signer for this service.
157+ * @param signingStrategyRequestSignerFactories The request signer factories for each signing strategy used to create the request signer
158+ * @param additionalClientConfigurators Additional client configurators to be run after the primary configurator.
159+ * @param endpoint Endpoint, or null to leave unset (note, may be overridden by {@code authenticationDetailsProvider})
160+ */
161+ public AuditClient (
162+ com .oracle .bmc .auth .AbstractAuthenticationDetailsProvider authenticationDetailsProvider ,
163+ com .oracle .bmc .ClientConfiguration configuration ,
164+ com .oracle .bmc .http .ClientConfigurator clientConfigurator ,
165+ com .oracle .bmc .http .signing .RequestSignerFactory defaultRequestSignerFactory ,
166+ java .util .Map <
167+ com .oracle .bmc .http .signing .SigningStrategy ,
168+ com .oracle .bmc .http .signing .RequestSignerFactory >
169+ signingStrategyRequestSignerFactories ,
135170 java .util .List <com .oracle .bmc .http .ClientConfigurator > additionalClientConfigurators ,
136171 String endpoint ) {
137172 this .authenticationDetailsProvider = authenticationDetailsProvider ;
@@ -140,10 +175,22 @@ public AuditClient(
140175 .clientConfigurator (clientConfigurator )
141176 .additionalClientConfigurators (additionalClientConfigurators )
142177 .build ();
143- com .oracle .bmc .http .signing .RequestSigner requestSigner =
144- requestSignerFactory .createRequestSigner (
178+ com .oracle .bmc .http .signing .RequestSigner defaultRequestSigner =
179+ defaultRequestSignerFactory .createRequestSigner (
145180 SERVICE , this .authenticationDetailsProvider );
146- this .client = restClientFactory .create (requestSigner , configuration );
181+ java .util .Map <
182+ com .oracle .bmc .http .signing .SigningStrategy ,
183+ com .oracle .bmc .http .signing .RequestSigner >
184+ requestSigners = new java .util .HashMap <>();
185+ for (com .oracle .bmc .http .signing .SigningStrategy s :
186+ com .oracle .bmc .http .signing .SigningStrategy .values ()) {
187+ requestSigners .put (
188+ s ,
189+ signingStrategyRequestSignerFactories
190+ .get (s )
191+ .createRequestSigner (SERVICE , authenticationDetailsProvider ));
192+ }
193+ this .client = restClientFactory .create (defaultRequestSigner , requestSigners , configuration );
147194
148195 this .paginators = new AuditPaginators (this );
149196
@@ -201,6 +248,7 @@ public AuditClient build(
201248 configuration ,
202249 clientConfigurator ,
203250 requestSignerFactory ,
251+ signingStrategyRequestSignerFactories ,
204252 additionalClientConfigurators ,
205253 endpoint );
206254 }
0 commit comments