From 4d1d83336ff26711e651bb953812b8212ae65fcd Mon Sep 17 00:00:00 2001 From: Emir Suleimanov Date: Tue, 28 Jan 2025 11:14:15 +0300 Subject: [PATCH] SUPPORT-8884: add loggers --- .../esia/service/EsiaAuthService.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/backend/src/main/java/ru/micord/ervu/security/esia/service/EsiaAuthService.java b/backend/src/main/java/ru/micord/ervu/security/esia/service/EsiaAuthService.java index 8b31113..a3257ac 100644 --- a/backend/src/main/java/ru/micord/ervu/security/esia/service/EsiaAuthService.java +++ b/backend/src/main/java/ru/micord/ervu/security/esia/service/EsiaAuthService.java @@ -161,6 +161,7 @@ public class EsiaAuthService { String esiaAccessTokenStr = null; String prnOid = null; Long expiresIn = null; + long signSecret = 0, requestAccessToken = 0, verifySecret = 0; try { String clientId = esiaConfig.getClientId(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.MM.dd HH:mm:ss xx"); @@ -178,7 +179,9 @@ public class EsiaAuthService { parameters.put("redirect_uri", redirectUrl); parameters.put("code", esiaAuthCode); + long startTime = System.currentTimeMillis(); String clientSecret = signMap(parameters); + signSecret = System.currentTimeMillis() - startTime; String authUrl = esiaConfig.getEsiaBaseUri() + esiaConfig.getEsiaTokenUrl(); String postBody = new FormUrlencoded() .setParameter("client_id", clientId) @@ -192,6 +195,7 @@ public class EsiaAuthService { .setParameter("token_type", "Bearer") .setParameter("client_certificate_hash", esiaConfig.getClientCertHash()) .toFormUrlencodedString(); + startTime = System.currentTimeMillis(); HttpRequest postReq = HttpRequest.newBuilder(URI.create(authUrl)) .header(HttpHeaders.CONTENT_TYPE, "application/x-www-form-urlencoded") .POST(HttpRequest.BodyPublishers.ofString(postBody)) @@ -201,6 +205,7 @@ public class EsiaAuthService { .connectTimeout(Duration.ofSeconds(esiaConfig.getConnectionTimeout())) .build() .send(postReq, HttpResponse.BodyHandlers.ofString()); + requestAccessToken = System.currentTimeMillis() - startTime; String responseString = postResp.body(); EsiaTokenResponse tokenResponse = objectMapper.readValue(responseString, EsiaTokenResponse.class @@ -212,7 +217,9 @@ public class EsiaAuthService { throw new IllegalStateException("Esia response error. " + errMsg); } esiaAccessTokenStr = tokenResponse.getAccess_token(); + startTime = System.currentTimeMillis(); String verifyResult = verifyToken(esiaAccessTokenStr); + verifySecret = System.currentTimeMillis() - startTime; if (verifyResult != null) { throw new EsiaException(verifyResult); } @@ -226,6 +233,10 @@ public class EsiaAuthService { catch (Exception e) { throw new EsiaException(e); } + finally { + LOGGER.info("Thread {}: SignSecret: {}ms RequestAccessToken: {}ms VerifySecret: {}ms", + Thread.currentThread().getId(), signSecret, requestAccessToken, verifySecret); + } try { Response ervuIdResponse = getErvuIdResponse(esiaAccessTokenStr); createTokenAndAddCookie(response, prnOid, ervuIdResponse.getErvuId(), expiresIn); @@ -362,17 +373,26 @@ public class EsiaAuthService { } public Response getErvuIdResponse(String accessToken) { + long requestPersonData = 0, requestIdERVU = 0; try { + long startTime = System.currentTimeMillis(); PersonModel personModel = personalDataService.getPersonModel(accessToken); + requestPersonData = System.currentTimeMillis() - startTime; Person person = copyToPerson(personModel); + startTime = System.currentTimeMillis(); String kafkaResponse = replyingKafkaService.sendMessageAndGetReply(requestTopic, requestReplyTopic, objectMapper.writeValueAsString(person) ); + requestIdERVU = System.currentTimeMillis() - startTime; return objectMapper.readValue(kafkaResponse, Response.class); } catch (Exception e) { throw new EsiaException(e); } + finally { + LOGGER.info("Thread {}: RequestPersonData: {}ms RequestIdERVU: {}ms", + Thread.currentThread().getId(), requestPersonData, requestIdERVU); + } } private Person copyToPerson(PersonModel personModel) {