SUPPORT-8884: add loggers
This commit is contained in:
parent
31105ecd92
commit
4138cce521
3 changed files with 31 additions and 25 deletions
|
|
@ -1,10 +1,13 @@
|
|||
package ru.micord.ervu.kafka.service.impl;
|
||||
|
||||
import java.lang.invoke.MethodHandles;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
import org.apache.kafka.clients.consumer.ConsumerRecord;
|
||||
import org.apache.kafka.clients.producer.ProducerRecord;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.kafka.requestreply.ReplyingKafkaTemplate;
|
||||
import org.springframework.kafka.requestreply.RequestReplyFuture;
|
||||
import ru.micord.ervu.kafka.service.ReplyingKafkaService;
|
||||
|
|
@ -13,18 +16,25 @@ import ru.micord.ervu.kafka.service.ReplyingKafkaService;
|
|||
* @author gulnaz
|
||||
*/
|
||||
public abstract class BaseReplyingKafkaService<T, V> implements ReplyingKafkaService<T, V> {
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
|
||||
|
||||
@Override
|
||||
public V sendMessageAndGetReply(String requestTopic, String replyTopic, T requestMessage) {
|
||||
long startTime = System.currentTimeMillis();
|
||||
RequestReplyFuture<String, T, V> replyFuture = getTemplate().sendAndReceive(
|
||||
getProducerRecord(requestTopic, replyTopic, requestMessage));
|
||||
|
||||
try {
|
||||
return Optional.ofNullable(replyFuture.get())
|
||||
V result = Optional.ofNullable(replyFuture.get())
|
||||
.map(ConsumerRecord::value)
|
||||
.orElseThrow(() -> new RuntimeException("Kafka return result is null"));
|
||||
LOGGER.info("Thread {} - KafkaSendMessageAndGetReply: {} ms",
|
||||
Thread.currentThread().getId(), System.currentTimeMillis() - startTime);
|
||||
return result;
|
||||
}
|
||||
catch (InterruptedException | ExecutionException e) {
|
||||
LOGGER.error("Thread {} - KafkaSendMessageAndGetReply: {} ms",
|
||||
Thread.currentThread().getId(), System.currentTimeMillis() - startTime);
|
||||
throw new RuntimeException("Failed to get kafka response", e);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ import java.util.UUID;
|
|||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
@ -234,11 +235,13 @@ public class EsiaAuthService {
|
|||
throw new EsiaException(e);
|
||||
}
|
||||
finally {
|
||||
LOGGER.info("Thread {}: SignSecret: {}ms RequestAccessToken: {}ms VerifySecret: {}ms",
|
||||
LOGGER.info("Thread {} - SignSecret: {} ms RequestAccessToken: {} ms VerifySecret: {} ms",
|
||||
Thread.currentThread().getId(), signSecret, requestAccessToken, verifySecret);
|
||||
}
|
||||
PersonModel personModel = null;
|
||||
try {
|
||||
Response ervuIdResponse = getErvuIdResponse(esiaAccessTokenStr);
|
||||
personModel = personalDataService.getPersonModel(esiaAccessTokenStr);
|
||||
Response ervuIdResponse = getErvuIdResponse(personModel);
|
||||
createTokenAndAddCookie(response, prnOid, ervuIdResponse.getErvuId(), expiresIn);
|
||||
return ResponseEntity.ok("Authentication successful");
|
||||
}
|
||||
|
|
@ -313,7 +316,8 @@ public class EsiaAuthService {
|
|||
Long expiresIn = tokenResponse.getExpires_in();
|
||||
EsiaTokensStore.addAccessToken(prnOid, esiaAccessTokenStr, expiresIn);
|
||||
EsiaTokensStore.addRefreshToken(prnOid, esiaNewRefreshTokenStr, expiresIn);
|
||||
Response ervuIdResponse = getErvuIdResponse(esiaAccessTokenStr);
|
||||
PersonModel personModel = personalDataService.getPersonModel(esiaAccessTokenStr);
|
||||
Response ervuIdResponse = getErvuIdResponse(personModel);
|
||||
createTokenAndAddCookie(response, esiaAccessToken.getSbj_id(), ervuIdResponse.getErvuId(), expiresIn);
|
||||
}
|
||||
catch (Exception e) {
|
||||
|
|
@ -372,27 +376,12 @@ 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);
|
||||
}
|
||||
public Response getErvuIdResponse(PersonModel personModel) throws JsonProcessingException {
|
||||
Person person = copyToPerson(personModel);
|
||||
String kafkaResponse = replyingKafkaService.sendMessageAndGetReply(requestTopic,
|
||||
requestReplyTopic, objectMapper.writeValueAsString(person)
|
||||
);
|
||||
return objectMapper.readValue(kafkaResponse, Response.class);
|
||||
}
|
||||
|
||||
private Person copyToPerson(PersonModel personModel) {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package ru.micord.ervu.security.esia.service;
|
||||
|
||||
import java.lang.invoke.MethodHandles;
|
||||
import java.net.URI;
|
||||
import java.net.http.HttpClient;
|
||||
import java.net.http.HttpRequest;
|
||||
|
|
@ -8,6 +9,8 @@ import java.time.Duration;
|
|||
import java.util.Base64;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import ru.micord.ervu.security.esia.exception.EsiaException;
|
||||
import ru.micord.ervu.security.esia.config.EsiaConfig;
|
||||
import ru.micord.ervu.security.esia.model.EsiaAccessToken;
|
||||
|
|
@ -23,6 +26,7 @@ import org.springframework.stereotype.Service;
|
|||
*/
|
||||
@Service
|
||||
public class EsiaPersonalDataService implements PersonalDataService {
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
|
||||
|
||||
@Autowired
|
||||
private EsiaConfig esiaConfig;
|
||||
|
|
@ -32,6 +36,7 @@ public class EsiaPersonalDataService implements PersonalDataService {
|
|||
|
||||
@Override
|
||||
public PersonModel getPersonModel(String accessToken) {
|
||||
long startTime = System.currentTimeMillis();
|
||||
try {
|
||||
EsiaAccessToken esiaAccessToken = readToken(accessToken);
|
||||
String prnsId = esiaAccessToken.getSbj_id();
|
||||
|
|
@ -39,9 +44,11 @@ public class EsiaPersonalDataService implements PersonalDataService {
|
|||
personModel.setPassportModel(
|
||||
getPassportModel(prnsId, accessToken, personModel.getrIdDoc()));
|
||||
personModel.setPrnsId(prnsId);
|
||||
LOGGER.info("Thread {} - RequestPersonData: {} ms", Thread.currentThread().getId(), System.currentTimeMillis() - startTime);
|
||||
return personModel;
|
||||
}
|
||||
catch (Exception e) {
|
||||
LOGGER.error("Thread {} - RequestPersonData: {} ms", Thread.currentThread().getId(), System.currentTimeMillis() - startTime);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue