Skip to content

Commit

Permalink
[MOSIP-30687] Bean creation handled (#1252)
Browse files Browse the repository at this point in the history
* MOSIP-30687 changes done to  from websub to kafka

Signed-off-by: Neha Farheen <[email protected]>

* logger added

Signed-off-by: Neha Farheen <[email protected]>

* test case resolved

Signed-off-by: Neha Farheen <[email protected]>

* MOSIP-30687 add class in config

Signed-off-by: Neha Farheen <[email protected]>

* added extra space to check the docker build

Signed-off-by: Neha Farheen <[email protected]>

* kafka bean enable and disable

Signed-off-by: Neha Farheen <[email protected]>

* kafka bean creation condition

Signed-off-by: Neha Farheen <[email protected]>

---------

Signed-off-by: Neha Farheen <[email protected]>
Co-authored-by: Neha Farheen <[email protected]>
  • Loading branch information
Neha2365 and Neha Farheen authored Apr 19, 2024
1 parent 4bca2da commit 11db0cb
Show file tree
Hide file tree
Showing 6 changed files with 60 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

import io.mosip.authentication.core.logger.IdaLogger;
import io.mosip.kernel.core.logger.spi.Logger;
import static io.mosip.authentication.core.constant.IdAuthConfigKeyConstants.AUTHENTICATION_ERROR_EVENTING_ENABLED;

/**
* The Class KafkaProducerConfig.
Expand All @@ -24,7 +25,7 @@
*/

@Configuration
@ConditionalOnProperty(value = "mosip.ida.authentication.error.eventing.enabled", havingValue = "true", matchIfMissing = false)
@ConditionalOnProperty(value = AUTHENTICATION_ERROR_EVENTING_ENABLED, havingValue = "true", matchIfMissing = false)
public class KafkaProducerConfig {
private static final Logger logger = IdaLogger.getLogger(KafkaProducerConfig.class);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package io.mosip.authentication.common.service.kafka.impl;

import static io.mosip.authentication.core.constant.IdAuthConfigKeyConstants.AUTHENTICATION_ERROR_EVENTING_ENABLED;
import static io.mosip.authentication.core.constant.IdAuthConfigKeyConstants.AUTHENTICATION_ERROR_EVENTING_TOPIC;

import java.util.HashMap;
Expand Down Expand Up @@ -32,7 +33,7 @@
* @author Neha
*/
@Component
@ConditionalOnProperty(value = "mosip.ida.authentication.error.eventing.enabled", havingValue = "true", matchIfMissing = false)
@ConditionalOnProperty(value = AUTHENTICATION_ERROR_EVENTING_ENABLED, havingValue = "true", matchIfMissing = false)
public class AuthenticationErrorEventingPublisher {

private static final String REQUEST_SIGNATURE = "requestSignature";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -174,4 +174,6 @@ private IdAuthConfigKeyConstants() {
public static final String KYC_EXCHANGE_DEFAULT_LANGUAGE = "mosip.ida.kyc.exchange.default.lang";

public static final String IDP_AMR_ACR_IDA_MAPPING_SOURCE = "idp.amr-acr.ida.mapping.property.source";

public static final String AUTHENTICATION_ERROR_EVENTING_ENABLED = "mosip.ida.authentication.error.eventing.enabled";
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import java.util.Objects;
import java.util.Optional;

import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;

Expand All @@ -14,7 +15,10 @@
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.security.SecurityScheme;
import io.swagger.v3.oas.annotations.tags.Tag;

import org.springframework.beans.factory.BeanCreationException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.validation.Errors;
import org.springframework.web.bind.WebDataBinder;
Expand Down Expand Up @@ -54,6 +58,7 @@
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import springfox.documentation.annotations.ApiIgnore;
import static io.mosip.authentication.core.constant.IdAuthConfigKeyConstants.AUTHENTICATION_ERROR_EVENTING_ENABLED;

/**
* The {@code OTPAuthController} use to send request to generate otp.
Expand Down Expand Up @@ -94,11 +99,23 @@ public class OTPController {

@Autowired(required = false)
private AuthenticationErrorEventingPublisher authenticationErrorEventingPublisher;

@Value("${"+ AUTHENTICATION_ERROR_EVENTING_ENABLED +":false}")
private boolean isEventingEnabled;

@InitBinder
private void initBinder(WebDataBinder binder) {
binder.setValidator(otpRequestValidator);
}

@PostConstruct
public void init() {
if (isEventingEnabled) {
if (Objects.isNull(authenticationErrorEventingPublisher)) {
throw new BeanCreationException(AuthenticationErrorEventingPublisher.class.getName(), "Failed to create a bean");
}
}
}

/**
* send OtpRequestDTO request to generate OTP and received OtpResponseDTO as
Expand Down Expand Up @@ -163,7 +180,7 @@ public OtpResponseDTO generateOTP(@Valid @RequestBody OtpRequestDTO otpRequestDt
} catch (IdAuthenticationBusinessException e) {
logger.error(IdAuthCommonConstants.SESSION_ID, e.getClass().toString(), e.getErrorCode(), e.getErrorText());

if (authenticationErrorEventingPublisher != null) {
if (isEventingEnabled) {
if (IdAuthenticationErrorConstants.ID_NOT_AVAILABLE.getErrorCode().equals(e.getErrorCode())) {
authenticationErrorEventingPublisher.notify(otpRequestDto, request.getHeader("signature"),
partner, e, otpRequestDto.getMetadata());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,12 @@
import java.util.Objects;
import java.util.Optional;

import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.BeanCreationException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.validation.Errors;
import org.springframework.validation.annotation.Validated;
Expand Down Expand Up @@ -54,6 +57,7 @@
import io.swagger.v3.oas.annotations.security.SecurityScheme;
import io.swagger.v3.oas.annotations.tags.Tag;
import springfox.documentation.annotations.ApiIgnore;
import static io.mosip.authentication.core.constant.IdAuthConfigKeyConstants.AUTHENTICATION_ERROR_EVENTING_ENABLED;

/**
* The {@code AuthController} used to handle all the authentication requests.
Expand Down Expand Up @@ -92,6 +96,9 @@ public class AuthController {

@Autowired(required = false)
private AuthenticationErrorEventingPublisher authenticationErrorEventingPublisher;

@Value("${"+ AUTHENTICATION_ERROR_EVENTING_ENABLED +":false}")
private boolean isEventingEnabled;


/**
Expand All @@ -102,6 +109,15 @@ public class AuthController {
private void initAuthRequestBinder(WebDataBinder binder) {
binder.setValidator(authRequestValidator);
}

@PostConstruct
public void init() {
if (isEventingEnabled) {
if (Objects.isNull(authenticationErrorEventingPublisher)) {
throw new BeanCreationException(AuthenticationErrorEventingPublisher.class.getName(), "Failed to create a bean");
}
}
}

/**
* authenticateRequest - method to authenticate request.
Expand Down Expand Up @@ -162,7 +178,7 @@ public AuthResponseDTO authenticateIndividual(@Validated @RequestBody AuthReques
} catch (IdAuthenticationBusinessException e) {
mosipLogger.error(IdAuthCommonConstants.SESSION_ID, this.getClass().getSimpleName(),
"authenticateApplication", e.getErrorCode() + " : " + e.getErrorText());
if (authenticationErrorEventingPublisher != null) {
if (isEventingEnabled) {
if (IdAuthenticationErrorConstants.ID_NOT_AVAILABLE.getErrorCode().equals(e.getErrorCode())) {
authenticationErrorEventingPublisher.notify(authrequestdto, request.getHeader("signature"),
partner, e, authrequestdto.getMetadata());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,14 @@
import java.util.Objects;
import java.util.Optional;

import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest;

import io.mosip.authentication.core.indauth.dto.*;

import org.springframework.beans.factory.BeanCreationException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.validation.Errors;
import org.springframework.validation.annotation.Validated;
Expand Down Expand Up @@ -56,6 +60,7 @@
import io.swagger.v3.oas.annotations.security.SecurityScheme;
import io.swagger.v3.oas.annotations.tags.Tag;
import springfox.documentation.annotations.ApiIgnore;
import static io.mosip.authentication.core.constant.IdAuthConfigKeyConstants.AUTHENTICATION_ERROR_EVENTING_ENABLED;

/**
* The {@code AuthController} used to handle all the authentication requests.
Expand Down Expand Up @@ -102,6 +107,9 @@ public class KycAuthController {

@Autowired(required = false)
private AuthenticationErrorEventingPublisher authenticationErrorEventingPublisher;

@Value("${"+ AUTHENTICATION_ERROR_EVENTING_ENABLED +":false}")
private boolean isEventingEnabled;

/**
*
Expand Down Expand Up @@ -129,6 +137,15 @@ private void initEKycBinder(WebDataBinder binder) {
private void initKycExchangeBinder(WebDataBinder binder) {
binder.setValidator(kycExchangeValidator);
}

@PostConstruct
public void init() {
if (isEventingEnabled) {
if (Objects.isNull(authenticationErrorEventingPublisher)) {
throw new BeanCreationException(AuthenticationErrorEventingPublisher.class.getName(), "Failed to create a bean");
}
}
}


/**
Expand Down Expand Up @@ -197,7 +214,7 @@ public EKycAuthResponseDTO processKyc(@Validated @RequestBody EkycAuthRequestDTO
} catch (IdAuthenticationBusinessException e) {
mosipLogger.error(IdAuthCommonConstants.SESSION_ID, this.getClass().getSimpleName(), "processEKyc",
e.getErrorTexts().isEmpty() ? "" : e.getErrorText());
if (authenticationErrorEventingPublisher != null) {
if (isEventingEnabled) {
if (IdAuthenticationErrorConstants.ID_NOT_AVAILABLE.getErrorCode().equals(e.getErrorCode())) {
authenticationErrorEventingPublisher.notify(ekycAuthRequestDTO, request.getHeader("signature"),
partner, e, ekycAuthRequestDTO.getMetadata());
Expand Down Expand Up @@ -280,7 +297,7 @@ public KycAuthResponseDTO processKycAuth(@Validated @RequestBody KycAuthRequestD
mosipLogger.error(IdAuthCommonConstants.SESSION_ID, this.getClass().getSimpleName(), "processKycAuth",
e.getErrorTexts().isEmpty() ? "" : e.getErrorText());

if (authenticationErrorEventingPublisher != null) {
if (isEventingEnabled) {
if (IdAuthenticationErrorConstants.ID_NOT_AVAILABLE.getErrorCode().equals(e.getErrorCode())) {
authenticationErrorEventingPublisher.notify(authRequestDTO, request.getHeader("signature"),
partner, e, authRequestDTO.getMetadata());
Expand Down

0 comments on commit 11db0cb

Please sign in to comment.