Skip to content

Commit d657506

Browse files
committed
AUT-2758 Refactor collecting circuit breaker statistics
1 parent e238713 commit d657506

2 files changed

Lines changed: 18 additions & 5 deletions

File tree

src/main/java/eu/webeid/resilientocsp/ResilientOcspCertificateRevocationChecker.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -223,27 +223,31 @@ private RevocationInfo processResult(Try<RevocationInfo> result, X509Certificate
223223
if (result.isSuccess()) {
224224
RevocationInfo revocationInfo = result.get();
225225
if (revocationInfoList.isEmpty()) {
226-
revocationInfo.ocspResponseAttributes().put(RevocationInfo.KEY_CIRCUIT_BREAKER_STATISTICS, circuitBreakerStatistics);
226+
revocationInfo = revocationInfo.withCircuitBreakerStatistics(circuitBreakerStatistics);
227227
} else {
228-
revocationInfoList.get(0).ocspResponseAttributes().put(RevocationInfo.KEY_CIRCUIT_BREAKER_STATISTICS, circuitBreakerStatistics);
228+
addCircuitBreakerStatistics(revocationInfoList, circuitBreakerStatistics);
229229
}
230230
return revocationInfo;
231231
}
232+
addCircuitBreakerStatistics(revocationInfoList, circuitBreakerStatistics);
232233
Throwable throwable = result.getCause();
233234
if (throwable instanceof ResilientUserCertificateOCSPCheckFailedException exception) {
234-
revocationInfoList.get(0).ocspResponseAttributes().put(RevocationInfo.KEY_CIRCUIT_BREAKER_STATISTICS, circuitBreakerStatistics);
235235
exception.setValidationInfo(new ValidationInfo(subjectCertificate, revocationInfoList));
236236
throw exception;
237237
}
238238
if (throwable instanceof ResilientUserCertificateRevokedException exception) {
239-
revocationInfoList.get(0).ocspResponseAttributes().put(RevocationInfo.KEY_CIRCUIT_BREAKER_STATISTICS, circuitBreakerStatistics);
240239
exception.setValidationInfo(new ValidationInfo(subjectCertificate, revocationInfoList));
241240
throw exception;
242241
}
243-
revocationInfoList.get(0).ocspResponseAttributes().put(RevocationInfo.KEY_CIRCUIT_BREAKER_STATISTICS, circuitBreakerStatistics);
244242
throw new ResilientUserCertificateOCSPCheckFailedException(new ValidationInfo(subjectCertificate, revocationInfoList));
245243
}
246244

245+
private void addCircuitBreakerStatistics(List<RevocationInfo> revocationInfoList,
246+
CircuitBreakerStatistics circuitBreakerStatistics) {
247+
revocationInfoList.set(0, revocationInfoList.get(0).withCircuitBreakerStatistics(circuitBreakerStatistics));
248+
}
249+
250+
247251
private void createAndAddRevocationInfoToList(Throwable throwable, List<RevocationInfo> revocationInfoList) {
248252
if (throwable instanceof ResilientUserCertificateOCSPCheckFailedException exception) {
249253
revocationInfoList.addAll((exception.getValidationInfo().revocationInfoList()));

src/main/java/eu/webeid/security/validator/revocationcheck/RevocationInfo.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,10 @@
2121
*/
2222
package eu.webeid.security.validator.revocationcheck;
2323

24+
import eu.webeid.resilientocsp.ResilientOcspCertificateRevocationChecker;
25+
2426
import java.net.URI;
27+
import java.util.HashMap;
2528
import java.util.Map;
2629

2730
public record RevocationInfo(URI ocspResponderUri, Map<String, Object> ocspResponseAttributes) {
@@ -33,4 +36,10 @@ public record RevocationInfo(URI ocspResponderUri, Map<String, Object> ocspRespo
3336
public static final String KEY_REQUEST_DURATION = "REQUEST_DURATION";
3437
public static final String KEY_CIRCUIT_BREAKER_STATISTICS = "CIRCUIT_BREAKER_STATISTICS";
3538
public static final String KEY_OCSP_RESPONSE_TIME = "OCSP_RESPONSE_TIME";
39+
40+
public RevocationInfo withCircuitBreakerStatistics(ResilientOcspCertificateRevocationChecker.CircuitBreakerStatistics circuitBreakerStatistics) {
41+
Map<String, Object> newOcspResponseAttributes = new HashMap<>(ocspResponseAttributes);
42+
newOcspResponseAttributes.put(KEY_CIRCUIT_BREAKER_STATISTICS, circuitBreakerStatistics);
43+
return new RevocationInfo(ocspResponderUri, newOcspResponseAttributes);
44+
}
3645
}

0 commit comments

Comments
 (0)